排序算法之简单选择排序
来源:互联网 发布:淘宝退款骗局 编辑:程序博客网 时间:2024/05/01 10:02
基本思想
在一组元素中选择具有最小排序码的元素,若它不是这组元素中的第一个元素,则将它与这组元素中的第一个元素对调;在未排序的剩下的元素中重复执行以上步骤,直到剩余元素只有一个为止。
代码
private void selectSort(int[] a, int left, int right) { for (int i = left; i < right; i++) { int k = i; int temp; for (int j = i + 1; j <= right; j++) { if (a[j] < a[k]) k = j; } if (k != i){ temp = a[i]; a[i] = a[k]; a[k] = temp; } }}
性能分析
- 时间复杂度
简单选择排序的排序码比较次数KCN 与元素的初始排列无关。第i趟选择具有最小排序码元素所需的比较次数总是n−i−1 次,假设整个待排序元素序列有n个元素。因此总的排序码比较次数为KCN=∑m=0n−2(n−i−1)=n(n−1)2
元素的移动次数与元素序列的初始排列有关。在最好情况下,即当初始序列为有序时,无需移动元素;在最坏的情况下,即每一趟都要进行元素交换。所以平均情况下的时间复杂度为O(n2) 。 - 稳定性
简单选择排序是一种不稳定的排序方法。
0 0
- 算法 排序算法之简单选择排序
- 排序算法之二:选择排序之【简单选择排序】
- 排序算法之简单选择排序
- 排序算法入门之简单选择排序
- 排序算法之简单选择排序
- 常用排序算法之简单选择排序
- 排序算法之简单选择排序
- 经典排序算法之简单选择排序
- 排序算法之简单选择排序
- 排序算法之简单选择排序
- 八大排序算法之简单选择排序
- 排序算法之简单选择排序
- 排序算法之简单选择排序(Java)
- C++简单排序算法之选择排序
- 排序算法入门之简单选择排序
- 排序算法入门之简单选择排序
- 排序算法之简单选择排序
- 常用排序算法之简单选择排序
- MySql优化--数据库和表结构优化
- 【Linux】Ubuntu下录屏&&制作GIF
- 课程设计-银行储蓄系统
- freemarker中循环显示
- LigerUI之Grid使用详解(一)——显示数据
- 排序算法之简单选择排序
- ZOJ 3229 Shoot the Bullet 有源有汇带下界的最大流
- iOS App Store 审核加速(插队)12小时100%成功!淘宝交易 不成功 不收费
- hdu 1558 Segment set (并查集)
- 素数环
- Android--ViewDragHelper完全解析 自定义ViewGroup神器
- Compiler Error Message: CS0016: Could not write to output file 'c:\Windows\Microsoft.NET\Framework64
- webdriver+selenium获取下拉框的值
- C语言中如何将二维数组作为函数的参数传递