算法-选择排序
2017-10-19 09:05
218 查看
实现选择排序算法
public static int[] Sort(int[] a) { int n = a.Length; if (n == 0) return null; int min = 0; for (int i = 0; i < n; i++) { min=i;//确定最小值所在的位置 for (int j = i + 1; j < n; j++) { if (a[j] < a[i]) { min = j; execArray(ref a, i, min);//将最小值所在的位置进行替换 } } } return a; } public static void execArray(ref int[] a,int n,int b) { int temp = a ; a = a[b]; a[b] = temp; }
优缺点:
1、运行时间和输入无关。为了找出最小的元素而扫描一遍数组并不能为下次扫描提供什么有用的信息。这是选择排序的缺点。
2、数据移动是最小的。每次交换都会改变两个数组元素的值。
对于长度为N的数组,选择排序需要大约N*N/2次比较和N次交换。
相关文章推荐
- 排序算法之一:选择,插入,冒泡排序算法(均为未改进版本)
- 算法入门之选择排序
- 算法——选择排序、插入排序和希尔排序(改进的插入排序)
- iOS算法总结-选择排序
- 算法提高 选择排序( 递归算法)
- Java数据结构与算法之选择排序_动力节点Java学院整理
- 第十六周项目1-(6)验证算法选择排序之堆排序
- 算法基础之插入排序,选择排序
- 【排序算法】排序算法之选择排序
- 基本算法简单实现-二分法查找、合并排序、冒泡排序、插入排序、选择排序、快速排序
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 必须知道的八大种排序算法【java实现】(二) 选择排序,插入排序,希尔算法【详解】
- 常用排序、选择算法
- Python 算法 - 选择排序
- 每日算法: 选择排序,冒泡排序
- 数据结构&算法实践—【排序|选择排序】堆排序
- Java(.NET)经典排序算法之选择排序
- 基础算法(一):选择排序和冒泡排序
- [算法练习]选择排序的C语言实现
- 算法 —— 选择排序,插入排序,希尔排序