SelectSort 选择排序
# SelectSort选择排序_Python实现 def select_sort(li): for i in range(len(li)): min_index = i # 此处确定刚刚所排序好的最小值的次序 for j in range(i+1, len(li) ): # 此处range最大值为index最高位数+1, 因为遍历是从i+1开始和i对比. if li[j] < li[min_index]: min_index = j li[i], li[min_index] = li[min_index], li[i] return li list = [1, 55, 98984, 65, 165, 356, 54, 3, 645, 74, 64, 35] li = select_sort(list) print(li)
选择排序特征:
双遍历
从头开始, 定义变量最小值为遍历次数i坐标所在值.(末尾开始则定义最大值)
用最小值依次比较, 更小者替换.
一轮子遍历后, 变量为列表最小, 保存i位置.
下次遍历时从i+1开始,遍历剩下所有最小值.
选择排序和冒泡排序具有非常高的相似度.都是双遍历.
不同之处在于,
冒泡排序同时对比两个相邻, 满足交换位置, 不设置变量.
选择排序, 定义变量, 每次拿出一个与其, 满足条件则替换变量.