最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【算法圖解】學(xué)習(xí)筆記5——?dú)w并排序

2022-01-06 09:26 作者:達(dá)達(dá)里A  | 我要投稿

簡(jiǎn)介:

歸并排序(英語:Merge sort,或mergesort),是創(chuàng)建在歸并操作上的一種有效的排序算法,效率為n*log n。

1945年由約翰·馮·諾伊曼首次提出。該算法是采用分治法(Divide and Conquer)的一個(gè)非常典型的應(yīng)用,且各層分治遞歸可以同時(shí)進(jìn)行。

采用分治法:

  • 分割:遞歸地把當(dāng)前序列平均分割成兩半。

  • 集成:在保持元素順序的同時(shí)將上一步得到的子序列集成到一起(歸并)。

代碼實(shí)現(xiàn)

def merge(left,right):#合并兩個(gè)列表

? ? merge_arr=[]

? ? i=0

? ? j=0

? ? l=len(left)

? ? r=len(right)

#i分別作為left和right的下標(biāo),分別獲取左右子列表的長(zhǎng)度

? ? while i<l and j<r:#循環(huán)歸并左右子列表元素

? ? ? ? if left[i]<right[j]:

? ? ? ? ? ? merge_arr.append(left[i])

? ? ? ? ? ? i+=1

? ? ? ? else:

? ? ? ? ? ? merge_arr.append(right[j])

? ? ? ? ? ? j+=1

? ? merge_arr.extend(left[i:])

? ? merge_arr.extend(right[j:])

? ? #歸并左子列表剩余元素

? ? #歸并右子列表剩余元素

? ? #返回歸并好的列表

? ? # print('左數(shù)組為:{}'.format(left),'右數(shù)組為{}'.format(right),'合并數(shù)組為{}'.format(merge_arr))

? ? return merge_arr

def RealSortQuick(input_arr):#拆分+合并

? ? if len(input_arr)<=1:

? ? ? ? return input_arr

? ? else:

? ? ? ? mid=int(len(input_arr)/2)

? ? ? ? left=RealSortQuick(input_arr[0:mid])

? ? ? ? right=RealSortQuick(input_arr[mid:])

? ? ? ? #合并排好序的左右兩個(gè)子列表

? ? ? ? return merge(left,right)


myarr=[24,34,2,3,567,34,65,78,863,421,23]

RealSortQuick(myarr)

? ? ? ?

? ?


【算法圖解】學(xué)習(xí)筆記5——?dú)w并排序的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
岳阳县| 元朗区| 军事| 鲁山县| 介休市| 博湖县| 辽阳市| 广安市| 嘉荫县| 边坝县| 南开区| 宁乡县| 西充县| 新营市| 尚义县| 农安县| 绥中县| 建平县| 石首市| 新疆| 靖宇县| 夹江县| 内乡县| 隆回县| 江口县| 阳新县| 富源县| 石台县| 阿克陶县| 定远县| 遂宁市| 酉阳| 太白县| 竹溪县| 科技| 木兰县| 富源县| 柏乡县| 于田县| 莫力| 双江|