python中歸并排序的原理是什么

本篇文章給大家分享的是有關(guān)python中歸并排序的原理是什么,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

創(chuàng)新互聯(lián)專(zhuān)注于格爾木網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供格爾木營(yíng)銷(xiāo)型網(wǎng)站建設(shè),格爾木網(wǎng)站制作、格爾木網(wǎng)頁(yè)設(shè)計(jì)、格爾木網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造格爾木網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供格爾木網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。

1、基本思路

歸納排序是采用分治法的非常典型的應(yīng)用。歸并排序的思想是先歸還分解組,然后合并組?;緲?gòu)想是將數(shù)組分解到最小,然后合并兩個(gè)有序數(shù)組,基本構(gòu)想是比較兩個(gè)數(shù)組的最前面的數(shù)量,誰(shuí)小就先取誰(shuí),取后取相應(yīng)的指針后移。然后進(jìn)行比較,直到一個(gè)組是空的,最后復(fù)制另一個(gè)組的剩馀部分即可。

2、實(shí)例

# 歸并排序
def merge_sort(alist):
    '''歸并排序'''
    n = len(alist)
    if n <= 1:
        return alist
    else:
        mid = n // 2
        # left 表示采用歸并排序后形成的有序的新的列表
        left_li = merge_sort(alist[:mid])
 
        # right 表示采用歸并排序后形成的有序的新的列表
        right_li = merge_sort(alist[mid:])
 
        # 將兩個(gè)有序的子序列合并成一個(gè)新的整體
        # merge(left,right)
        left_pointer,right_pointer = 0,0
        result = []
        while left_pointer < len(left_li) and right_pointer < len(right_li):
            if left_li[left_pointer] <= right_li[right_pointer]:
                result.append(left_li[left_pointer])
                left_pointer += 1
            else:
                result.append(right_li[right_pointer])
                right_pointer += 1
 
        result += left_li[left_pointer:]
        result += right_li[right_pointer:]
        return result
 
if __name__ == '__main__':
    alist = [54, 26, 93, 17, 77, 31, 44, 55, 20]
    print(alist)
    sorted_alist = merge_sort(alist)
    print(sorted_alist)

Python的優(yōu)點(diǎn)有哪些

1、簡(jiǎn)單易用,與C/C++、Java、C# 等傳統(tǒng)語(yǔ)言相比,Python對(duì)代碼格式的要求沒(méi)有那么嚴(yán)格;2、Python屬于開(kāi)源的,所有人都可以看到源代碼,并且可以被移植在許多平臺(tái)上使用;3、Python面向?qū)ο螅軌蛑С置嫦蜻^(guò)程編程,也支持面向?qū)ο缶幊蹋?、Python是一種解釋性語(yǔ)言,Python寫(xiě)的程序不需要編譯成二進(jìn)制代碼,可以直接從源代碼運(yùn)行程序;5、Python功能強(qiáng)大,擁有的模塊眾多,基本能夠?qū)崿F(xiàn)所有的常見(jiàn)功能。

以上就是python中歸并排序的原理是什么,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

新聞名稱(chēng):python中歸并排序的原理是什么
地址分享:http://muchs.cn/article26/gheijg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)Google、網(wǎng)站制作、軟件開(kāi)發(fā)、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司