Python排序算法之选择排序定义与用法示例
程序员文章站
2022-05-20 09:33:55
本文实例讲述了Python排序算法之选择排序定义与用法。分享给大家供大家参考,具体如下:
选择排序
选择排序比较好理解,好像是在一堆大小不一的球中进行选择(以从小到大,...
本文实例讲述了Python排序算法之选择排序定义与用法。分享给大家供大家参考,具体如下:
选择排序
选择排序比较好理解,好像是在一堆大小不一的球中进行选择(以从小到大,先选最小球为例):
1. 选择一个基准球
2. 将基准球和余下的球进行一一比较,如果比基准球小,则进行交换
3. 第一轮过后获得最小的球
4. 在挑一个基准球,执行相同的动作得到次小的球
5. 继续执行4,直到排序好
时间复杂度:O(n^2). 需要进行的比较次数为第一轮 n-1,n-2....1, 总的比较次数为 n*(n-1)/2
直接上代码:
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)
执行结果:
PS:这里再为大家推荐一款关于排序的演示工具供大家参考:
在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
http://tools.jb51.net/aideddesign/paixu_ys
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
推荐阅读
-
Python实现的堆排序算法原理与用法实例分析
-
Python实现桶排序与快速排序算法结合应用示例
-
Python实现的选择排序算法原理与用法实例分析
-
Python排序算法之选择排序定义与用法示例
-
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
-
Java排序算法三之归并排序的递归与非递归的实现示例解析
-
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
-
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
-
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
-
JavaScript选择排序算法原理与实现方法示例