新聞中心
說(shuō)明

創(chuàng)新互聯(lián)是專(zhuān)業(yè)的咸寧網(wǎng)站建設(shè)公司,咸寧接單;提供成都做網(wǎng)站、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行咸寧網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
1、歸并排序是一種高效、穩(wěn)定的合并運(yùn)算排序算法,它是采用分治方法的典型應(yīng)用。
2、基本思想大致為:首先通過(guò)遞歸的方式將給定的數(shù)組二分為二分,再按大小比較進(jìn)行兩次大小比較排序,最后逐級(jí)合并完成總體的排序。
歸并排序更有效,它設(shè)置了n個(gè)列長(zhǎng),將數(shù)列分成小數(shù)列,需要logn步驟,每個(gè)步驟都是一個(gè)合并有序數(shù)列的過(guò)程,時(shí)間復(fù)雜性為O(nlogn),即O(n)。
實(shí)例
import random def ConfiationAlgorithm(str): if len(str) <= 1: #子序列 return str mid = (len(str) / 2) left = ConfiationAlgorithm(str[:mid])#遞歸的切片操作 right = ConfiationAlgorithm(str[mid:len(str)]) result = [] #i,j = 0,0 while len(left) > 0 and len(right) > 0: if (left[0] <= right[0]): #result.append(left[0]) result.append(left.pop(0)) #i+= 1 else: #result.append(right[0]) result.append(right.pop(0)) #j+= 1 if (len(left) > 0): result.extend(ConfiationAlgorithm(left)) else: result.extend(ConfiationAlgorithm(right)) return result if __name__ == '__main__': a = [20,30,64,16,8,0,99,24,75,100,69] print ConfiationAlgorithm(a) b = [random.randint(1,1000) for i in range(10)] print ConfiationAlgorithm(b)
以上就是python歸并排序的理解,希望對(duì)大家有所幫助。更多Python學(xué)習(xí)指路:創(chuàng)新互聯(lián)python教程
本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。
網(wǎng)站名稱(chēng):創(chuàng)新互聯(lián)Python教程:python歸并排序如何理解
網(wǎng)站URL:http://www.5511xx.com/article/ccepsei.html


咨詢(xún)
建站咨詢(xún)
