简单的选择排序算法,C代码示例详解
1。复杂性和稳定性
算法时间复杂度
最坏情况:O(n^2)
最好情况:O(1 ) 情况已经是正序了 ‼ 空间复杂度:S(n ) =O(1)
稳定性:不稳定的排序
2。流程介绍(以序列为例)
1.我们设置两条记录i和j,i从数组的第一个元素开始,j从元素i+1开始。
2。然后j循环整个数组,从整个数组中选择最小值,并将该最小值与i交换位置(如果i选择的元素是最小的,则不需要交换)。我们称这个过程为一次性排序。
3.i 选择下一个元素 (i++) 并重复每个选择排序。
4。继续上面的步骤,直到i达到n-1,即排序尚未完成。
3。流程说明:
以数据{2,10,9,4,8,1,6,5}为例
| 初始数据 | 2 | 10 | 9 | 4 | 8 | 1 | 6 | 5 |
| 第一遍 | 1 | 10 | 9 | 4 | 8 | 2 | 6 | 5 |
| 第二遍 | 1 | 2 | 9 | 4 | 8 | 10 | 6 | 5 |
| 1 | 2 | 4 | 9 | 8 | 10 | 6 | 5 | |
| 第四次骑行 | 1 | 2 | 4 | 5 | 8 | 10 | 6 | 9 |
| 第五次骑行 | 1 | 2 | 4 | 5 | 6 | 10 | 8 | 9 |
| 第六次骑行 | 1 | 2 | 4 | 5 | 6 | 8 | 10 | 9 |
| 第七次骑行 | 1 | 2 | 4 | 5 | 6 | 8 | 9 | 10 |
如图所示,每次交换的数据都用红色标记。排序后的数据用蓝色背景标记。
每一遍从要排序的数据元素中选择最小的元素并将其放置在排序序列的末尾,直到所有要排序的数据元素都已排序。最后我们只需要进行n-1次排序操作,因为最后剩下的数据一定是总数据中最大的数据。? select_sort(inta[],int❙ int a[], 温度; for( int i=0;i
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网