參考資源來自:https://www.cnblogs.com/zingp/p/6537841.html
以下筆記主要針對直接選擇排序
演繹過程中一開始對直接選擇排序的最值替換排序語句放的位置有所疑問,以爲應該是下面這樣:
def select_sort(array):
for i in range(len(array)-1):
for j in range(i+1, len(array)):
if array[j] < array[i]:
array[i], array[j] = array[j], array[i]
鏈接原文則如下:
def select_sort(array):
for i in range(len(array)-1):
min = i
for j in range(i+1, len(array)):
if array[j] < array[min]:
min = j
array[i], array[min] = array[min], array[i]
個人理解:直接選擇排序是假設列表第一個值爲基準,然後依次和剩下的元素做對比,最後取出這一次假設中的最值,以此類推,下一次假設的基準都往後移一位,與剩下的元素做對比,最後完成排序。
但讓自己這樣一改,形式上有點像冒泡排序了,但冒泡排序的每次對比是相鄰兩個數做對比,然後排序,也是有點不一樣了。