本文实例讲述了Python排序算法之选择排序定义与用法。分享给大家供大家参考,具体如下:
选择排序
选择排序比较好理解,好像是在一堆大小不一的球中进行选择(以从小到大,先选最小球为例):
1. 选择一个基准球
2. 将基准球和余下的球进行一一比较,如果比基准球小,则进行交换
3. 第一轮过后获得最小的球
4. 在挑一个基准球,执行相同的动作得到次小的球
5. 继续执行4,直到排序好
时间复杂度:O(n^2). 需要进行的比较次数为第一轮 n-1,n-2....1, 总的比较次数为 n*(n-1)/2
直接上代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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) |
执行结果:
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://www.cnblogs.com/AlwinXu/p/5424510.html