一、选择排序
原理:每次从列表中选择出最小的数,依次放在从左向右的位置,一个长度为n的列表,有n个位置。
对于列表[2,3,1],选择排序的步骤为
(1)从索引为0的位置开始遍历列表,得到最小值1,与索引为0的数字2换位,得到[1,3,2]
(2)再从索引为1的位置开始遍历列表(因为0的位置已经确定是最小了),得到最小值2,与索引为1的数字3换位,得到[1,2,3]
可以发现在一个长度为n的列表中,有n个位置,所以我们需要得到n-1次最小值,依次放在对应的位置上。而且对于这n个数,每次得到最小值需要遍历的次数为n-1,n-2,n-3....1。而且在排序之前,这n个数是完全无规则的,它不像堆结构一样,提前知道,子节点小于父节点。因此,对于所以选择排序的最好和最坏的时间复杂度都为,也就是
。
其代码为:
def selectRank(my_list):
for j in range(len(my_list)-1):
maxnum=j
for i