> 运动
排序算法之选择排序的方法(选择排序算法分析)
导语:排序算法之选择排序
大家好,今天我们来说选择排序算法,选择排序算法顾名思义,就是通过选择来进行排序的算法,这种算法最大的好处就是减少了数据之间的交换,假设有n组数据,那么仅交换 n-1次就可以。
那么我们正式来说说选择排序的具体设计。所谓选择,就是在已有数据中的找出最大或最小的数字,将这个数字交换至最左边。直至未排序的最后一位。举个例子: 1、8、3、5、9、2 为例,
第一轮,我们先进行对比,找出最大的一位,即9,然后将9于第一位的1进行交换 得到:9、8、3、5、1、2。 第二轮,我们从剩余的 {8、3、5、1、2}中找到最大值8,由于8为第一位,与本次交换的位置相同,故不进行交换。依旧为:9、8、3、5、1、2。
第三轮,我们从剩余的{3、5、1、2}中进行对比,我们找到了最大值5,进行交换得到:9、8、5、3、1、2
第四轮 ,我们从剩余的{3、1、2}中进行比较,由于第一位的3位最大,本次不交换:9、8、5、3、1、2
第五轮,我们对比剩余的1和2,并进行交换 得到最终数据 9、8、5、3、2、1。
我们会发现,五轮对比中,我们在 第一轮、第三轮、第五轮中进行了交换,即仅进行了三次交换,极大的减少了交换的次数,优化了排序的复杂度。
接下来我们来看代码的实现:
代码实现
代码运行图
好了,选择排序算法大致就是这个样子。核心思想就是 找到最大或最小值,存放在最左边。
本文内容由小迪整理编辑!