我的merge_sort函式有問題,特別是對右子列表執行遞迴排序。在
對此分配給出的提示是:# if min_ < max_
# calculate mid ((min + max) // 2)
#recursively sort left sub-list
# recursively sort right sub-list
# merge sorted sub-lists
# merge_sort function
:param unsorted_list: the list to be sorted
:param min_: the minimum index to sort from the given list
:param max_: the maximum index to sort from the given list
returns nothing, the original list is modified so no copy is needed
合併排序功能
^$用上面的測試列表測試我的函式可以得到:[1, 2, 4, 12, 20, 17, 3, 11, 18, 1]
這表示左子列表正在工作,但右子列表不工作。在
預期輸出應返回的值:[1, 1, 2, 3, 4, 11, 12, 17, 18, 20]
我的合併函式**:def merge(unsorted_list, min_, max_):
# mid position = start of second sub-list
mid = ((min_ + max_) // 2) + 1
position1 = min_
position2 = mid
position3 = 0
temp =
stop = false
while stop == false and position2 < len(unsorted_list) and position1 < mid:
if unsorted_list[position1] <= unsorted_list[position2]:
position1 += 1
position3 += 1
else:
position2 += 1
position3 += 1
if position1 >= position2:
for k in range(position1, mid + 1):
position2 += 1
position3 += 1
stop = true
if position3 == len(unsorted_list):# temp
for i in range(len(temp)):
unsorted_list[min_] = temp[i]
min_ += 1
elif position2 > max_:
for k in range(position1, mid):
position3 += 1
stop = true
if position3 == len(unsorted_list):# temp
for i in range(len(temp)):
unsorted_list[min_] = temp[i]
min_ += 1
if position3 != len(unsorted_list):
for k in range(position2, len(unsorted_list)):
position3 += 1
if position3 > max_ and position3 == len(temp):
for i in range(len(temp)):
unsorted_list[min_] = temp[i]
min_ += 1
遞迴列印組合
列印組合問題 給出數n和k 1 k n 求出c n,m 的所有組合並列印.例如n 5,k 3,則所有的組合為 5 4 3 5 4 2 5 4 1 5 3 2 5 3 1 5 2 1 4 3 2 4 3 1 4 2 1 3 2 1 如果只是求出組合數,那麼就是簡單的 單向遞迴 問題,因為存在遞推公式 ...
遞迴與組合
福利彩票和體育彩票近兩年比較火暴,相應在vb論壇上大家討論也較多。其實選擇彩票與集合選擇子集相同道理。下面給出一種vb的遞迴演算法 雖然明知存入陣列會加快運算速度,但最終也沒能滿意地實現,請大家多多指教。另外,效率確實不高 option explicit private sub command1 c...
快速排序python遞迴實現
快速排序python def swap list,i,j 位置互換 list i list j list j list i return list def quicksort list,start,end if start end i,j start,end base list i 設定基數 whi...