歸併排序(python版)

2021-09-12 12:58:55 字數 699 閱讀 5153

將已有序的子串行合併,得到完全有序的序列;即先使每個子串行有序,再使子串行段間有序。若將兩個有序表合併成乙個有序表,稱為二路歸併

分治

import random

nums =

def merge_sort(nums):

if len(nums) == 1:

return nums

mid = len(nums)//2

left = nums[:mid]

right = nums[mid:]

l = merage_sort(left)

r= merage_sort(right)

return merge(l, r)

def merge(left, right):

result =

while len(left) > 0 and len(right) > 0:

if left[0] <= right[0]:

else:

result += left

result += right

return result

print("the raw nums is:", nums)

sorted_nums = merge_sort(nums)

print("the sorted nums is:", sorted_nums)

python歸併排序 python 歸併排序

排序思路 1.將陣列分成兩組a,b,建立臨時陣列 c,c長度 a b 2.i,j分別屬於a,b 3.若a i b j 將b j 放入c,j 否則 a i 放入c,i 4.迴圈3步驟,將a或b中剩餘的元素放入c,再將c複製到陣列中 5.遞迴3 4直到a,b序列的長度 1 歸併排序 class merg...

C 版歸併排序

class program listy x.tolist listtogether mergesort y console.writeline console.write 排序後為 together.foreach int ele console.writeline console.readkey ...

歸併排序 Java版

一開始做演算法的時候,感覺遞迴演算法很繞,所以我就在閱讀別人 的基礎上,對 每一步都新增自己的註解,方便我以後的學習。public class mergesort return nums public static void merge int nums,int low,int mid,int hi...