Python快速排序详解

今天给大家分享的是 Python 算法中的选择排序。选择排序是一种简单直观的排序算法。和之前讲到的冒泡排序、快速排序性质一样,都是属于比较法排序。

排序原理

它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

排序思路

选择排序是给每个位置选择当前元素最小的,比如给第一个位置选择最小的,在剩余元素里面给第二个元素选择第二小的,依次类推,直到第 n-1 个元素,第 n 个元素不用选择了,因为只剩下它一个最大的元素了。

为了便于理解,例子中的列表我只用了 4 个元素,利用双层 for 循环完成排序,内层 for 循环做判断和基准数字比较大小,比基准数字小的就交换位置,直到选择出最小的放在第一位,然后再从剩下的数字中继续判断,选择出第二小的,以此类推。(左右滑动查看全部代码)

代码分析

为了便于理解,我在代码中把每次内外层循环时的列表打印出来。(左右滑动查看全部代码)

打印出来的结果如下

从第一组数可以看出,i 经过第一轮的循环后,把列表中最小的数字 4 提取了出来并和之前的第一位的数字 8 交换了位置。第一个最小的数字排好序后,接下来 i 继续往后循环,在后面三个数中最小的 6 交换到第二位。i 第三次循环时比较最后两个数字的大小,把相对小的排在第三位,最后一位不用排,自然就是最大的数字了。

以上的例子是把数字从小到大升序排列,如果需要从大到小降序排列呢?只需要把代码中 if 判断语句中的 < 符号改成 > 符号即可。

今天的 Python 算法选择排序比较简单,希望能帮助大家更好地理解。

 

文章为pk哥原创,我在我的公众号: Python 知识圈 上会分享更多心得体会,你也可以关注。

***版权申明:本文为 Python知识圈 pyzhishiquan.com 原创,没有Python知识圈书面授权,请勿以任何形式转载,摘编,复制或镜像。***

为您推荐

发表评论

电子邮件地址不会被公开。