参考资源来自: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]
个人理解:直接选择排序是假设列表第一个值为基准,然后依次和剩下的元素做对比,最后取出这一次假设中的最值,以此类推,下一次假设的基准都往后移一位,与剩下的元素做对比,最后完成排序。
但让自己这样一改,形式上有点像冒泡排序了,但冒泡排序的每次对比是相邻两个数做对比,然后排序,也是有点不一样了。