详谈选择排序算法的定义和过程

电子说

1.3w人已加入

描述

1 选择排序法的定义

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。(来自百度百科)

2 选择排序法详细过程解析

假定有这样一个数组

int[] nums = new int[]{6, 4, 5, 1, 3, 2};

现在需要将他从大到小排列。

选择排序法代码如下:

C语言

排序详细过程:

[6, 4, 5, 1, 3, 2] 第一次遍历6和2交换位置

[6, 5, 4, 1, 3, 2] 第二次遍历5和4交换位置

[6, 5, 4, 1, 3, 2] 第三次遍历4位置不变

[6, 5, 4, 3, 1, 2] 第四次遍历3和1交换位置

[6, 5, 4, 3, 2, 1] 第五次遍历2和1交换位置

3 选择排序法时间复杂度

数据比较次数:

C = (N-1)+(N-2)+……+2+1=(((N-1)+1)*(N-1)) / 2=(N^2)/2-N/2

数据交换次数:

M = N-1

时间复杂度:

C+M=(N^2)/2-N/2+ N-1=O(N^2)

因此,选择排序的时间复杂度为O(N^2)

4 结语

感谢各位的阅读,如有问题,欢迎大家留言反馈,我会在第一时间修正。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分