简单选择排序
来源:互联网 发布:淘宝优惠券winppo 编辑:程序博客网 时间:2024/06/17 03:34
简单选择排序
简单选择排序的思路很简单,首先,找到数组中最小的元素,将它和数组中的第一个元素交换,其次在剩下的元素中找到最小的元素,将它与数组中的第二个元素交换,如此往复,直到将整个数组排序。这种排序的算法叫做选择排序,因为它总是在未排序的数组中找到最小元素,每次找到最小的元素后,将它与数组第一个未排序的位置交换,因此内循环每次结束后,都将一个元素的位置最终确定下来。
看下选择排序的实现:
public class SelectionSort { public static void sort(int[] a) { if (a == null || a.length == 0) { return; } for (int i = 0; i < a.length; i++) { int minIndex = i; for (int j = i + 1; j < a.length; j++) { if (a[minIndex] > a[j]) { minIndex = j; } } //将a[i+1,a.length-1]的最小值和a[i]交换 exchange(a, i, minIndex); } } private static void exchange(int[] a, int i, int j) { int tmp = a[i]; a[i] = a[j]; a[j] = tmp; }}
选择排序的实现很简单,也很容易理解。内循环需要遍历剩下未排序的数组,找到最小值。
复杂度分析
选择排序的交换次数为
选择排序的比较次数为
因此,选择排序的时间复杂度为
选择排序的空间复杂度为
阅读全文
1 0
- 选择排序-简单选择排序
- 【选择排序】简单选择排序
- 选择排序-简单选择排序
- 选择排序-简单选择排序
- 选择排序------简单选择排序
- 选择排序--简单选择排序
- 选择排序-简单选择排序
- 选择排序-简单选择排序
- 排序 -- 简单选择排序
- 排序-简单选择排序
- 排序。。。简单选择排序
- 简单排序---选择排序
- 简单排序:选择排序
- 排序-简单选择排序
- 【排序】简单选择排序
- 排序:简单选择排序
- 简单排序--选择排序
- 简单排序:选择排序
- 第一周LeetCode算法题之一
- Gradle学习系列之二——创建Task的多种方法
- 9.7训练日志
- NOIP2015斗地主(洛谷2668)
- 判断闰年和2月天数,100到1000的非素数
- 简单选择排序
- 【poj 1523】SPF 【Greater New York 2000】
- 关于TCP/IP,必知必会的十个问题
- 维基百科六度分隔理论
- JQuery判断格式
- 基于key验证的ssh连接
- 22. Generate Parentheses
- 第一周小结
- Spring动态切换多数据源