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开始,遍历剩下所有最小值.


选择排序和冒泡排序具有非常高的相似度.都是双遍历.
不同之处在于,
冒泡排序同时对比两个相邻, 满足交换位置, 不设置变量.
选择排序, 定义变量, 每次拿出一个与其, 满足条件则替换变量.

你可能感兴趣的:(SelectSort 选择排序)