思路1:先單獨排序,再合併
注意:sorted函式是又返回值的,不改變原來list,注意
若是多個陣列,則可以對其中所有第乙個數進行再排序
def sort1(list1,list2):
list1 = sorted(list1)
list2 = sorted(list2)
res =
while(len(list1) and len(list2)):
if list1[0] < list2[0]:
del list1[0]
else:
del list2[0]
res.extend(list1)
res.extend(list2)
print(res)
思路2:插入排序到第三個空陣列
考慮細節:1 注意判斷是否是最小元素,插入到頭部
2 其實可以合併重複**,多個陣列也是一樣的,三層迴圈。
def sort2(list1,list2):
res =
for i in range(len(list1)):
if len(res) == 0:
continue
for j in range(len(res)-1,-2,-1):
if list1[i] < res[j]:
if j == 0:
res.insert(0, list1[i])
continue
else:
res.insert(j+1,list1[i])
break
for i in range(len(list2)):
for j in range(len(res)-1,-2,-1):
if list2[i] < res[j]:
if j == 0:
res.insert(0, list2[i])
continue
else:
res.insert(j+1,list2[i])
break
print(res)
sort1([3,4,2],[2,4,1,5,6])
無序陣列的歸併排序與合併多個有序陣列
1.什麼是歸併排序?歸併排序先把大的陣列的合併問題拆分成多個小的區間,然後兩兩進行合併。核心思想是遞迴 歸併 遞迴 把大區間拆分成無數個小區間 歸併 把兩個小區間合併成乙個大區間 解題思路 遞迴 兩個有序列表的合併 1.案例1 對無序的陣列進行歸併排序 如下 public static void m...
合併排序陣列
合併兩個排序的整數陣列a和b變成乙個新的陣列。樣例給出a 1,2,3,4 b 2,4,5,6 返回 1,2,2,3,4,4,5,6 挑戰 你能否優化你的演算法,如果其中乙個陣列很大而另乙個陣列很小?class solution param a and b sorted integer array a...
合併排序陣列
題目要求 合併兩個排序好的陣列 2.1 version one 完全採用c 內建函式,不用考慮任何演算法,執行通過 vector mergesortedarray vector a,vector b 2.2 version two 分別使用兩個迭代器指向待排序的陣列,然後依次比較大小.直到出現有乙個...