电子说
1 选择排序法的定义
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。(来自百度百科)
2 选择排序法详细过程解析
假定有这样一个数组
int[] nums = new int[]{6, 4, 5, 1, 3, 2};
现在需要将他从大到小排列。
选择排序法代码如下:
排序详细过程:
[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 结语
感谢各位的阅读,如有问题,欢迎大家留言反馈,我会在第一时间修正。
全部0条评论
快来发表一下你的评论吧 !