#coding=utf-8 # 选择排序 ''' 选择排序算法的原理如下: 对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个变量min_index来记住他的位置, 接着第二次比较,前面“后一个元素”现变成了“前一个元素”, 继续跟它的“后一个元素”进行比较如果后面的元素比他要小则用变量min_index记住它在数组中的位置(下标), 等到循环结束的时候,我们应该找到了最小的那个数的下标,然后进行判断,如果这个元素的下标不是第一个元素的下标, 就让第一个元素跟它交换一下值,这样就找到整个数组中最小的数。 然后找到数组中第二小的数,让它跟数组中第二个元素交换一下值,以此类推。 ''' def select_sort(li): for i in range(len(li)): # 第i趟开始时 无序区:li[i:] # 找无序区最小值,保存最小值的位置 print("第%s趟" % (i + 1)) min_index = i for j in range(i + 1, len(li)): if li[j] < li[min_index]: min_index = j print("min_index %s" %(j)) li[min_index], li[i] = li[i], li[min_index] print("第%s次比对%s" %(j, li)) import random # range()函数中有一个参数,则从0开始。 # range()函数中有两个参数,则将第一个参数做为起始位,第二个参数为结束位 li = list(range(9)) #print(li) # 将序列的所有元素随机排序 random.shuffle(li) print("排序准备%s" % li) select_sort(li) print("排序结果%s" % li)