选择排序比较好理解,好像是在一堆大小不一的球中进行选择(以从小到大,先选最小球为例):spa
1. 选择一个基准球code
2. 将基准球和余下的球进行一一比较,若是比基准球小,则进行交换blog
3. 第一轮事后得到最小的球排序
4. 在挑一个基准球,执行相同的动做获得次小的球class
5. 继续执行4,直到排序好List
时间复杂度:O(n^2). 须要进行的比较次数为第一轮 n-1,n-2....1, 总的比较次数为 n*(n-1)/2select
直接上代码:im
def selectedSort(myList): #获取list的长度 length = len(myList) #一共进行多少轮比较 for i in range(0,length-1): #默认设置最小值得index为当前值 smallest = i #用当先最小index的值分别与后面的值进行比较,以便获取最小index for j in range(i+1,length): #若是找到比当前值小的index,则进行两值交换 if myList[j]<myList[smallest]: tmp = myList[j] myList[j] = myList[smallest] myList[smallest]=tmp #打印每一轮比较好的列表 print("Round ",i,": ",myList) myList = [1,4,5,0,6] print("Selected Sort: ") selectedSort(myList)
执行结果:img