常见排序算法 (三)-选择排序
来源:互联网 发布:脸部皮肤粗糙 知乎 编辑:程序博客网 时间:2024/09/21 09:27
算法描述:
首先找出最大的元素,将其与 a[n-1]位置交换;
然后在余下的 n-1 个元素中寻找最大的元素,将其与 a[n-2]位置交换,
如此进行下去直至 n 个元素排序完毕。
过程举例:
初始元素序列: 8 3 2 5 9 3* 6
第一趟排序: 8 3 2 5 6 3* 【9 】
第二趟排序: 3* 3 2 5 6 【 8 9 】
第三趟排序: 3* 3 2 5 【6 8 9 】
第四趟排序: 3* 3 2 【5 6 8 9 】
第五趟排序: 2 3 【3* 5 6 8 9 】
直接选择排序交换少,比较多。元素比较费劲时(如字符串比较)不建议用此算法。
首先找出最大的元素,将其与 a[n-1]位置交换;
然后在余下的 n-1 个元素中寻找最大的元素,将其与 a[n-2]位置交换,
如此进行下去直至 n 个元素排序完毕。
过程举例:
初始元素序列: 8 3 2 5 9 3* 6
第一趟排序: 8 3 2 5 6 3* 【9 】
第二趟排序: 3* 3 2 5 6 【 8 9 】
第三趟排序: 3* 3 2 5 【6 8 9 】
第四趟排序: 3* 3 2 【5 6 8 9 】
第五趟排序: 2 3 【3* 5 6 8 9 】
第六趟排序: 2 【 3 3* 5 6 8 9 】
public class Main {public static void main(String[] args) {int[] a = { 8, 3, 2, 5, 9, 3, 6 };SelectionSort(a);for (int i = 0; i < a.length; i++) {System.out.println(a[i]);}}public static void SelectionSort(int a[]) {int minIndex = 0;int temp = 0;if (a == null || a.length == 0)return;for (int i = 0; i < a.length; i++) {minIndex = i;// 无序区的最小数据数组下标for (int j = i + 1; j < a.length; j++) {// 在无序中招到最小数据并保持其书序下标if (a[j] < a[minIndex]) {minIndex = j;}}if (minIndex != i) {temp = a[i];a[i] = a[minIndex];a[minIndex] = temp;}}}}
直接选择排序交换少,比较多。元素比较费劲时(如字符串比较)不建议用此算法。
0 0
- 常见排序算法 (三)-选择排序
- 常见排序算法:选择排序
- Java三种常见的排序算法:冒泡,选择,插入
- 常见排序算法之直接选择排序
- 常见排序算法之选择排序
- 排序算法之三选择排序
- 排序算法(三):选择排序
- java排序算法之三选择排序
- 排序算法(三)选择排序
- 排序算法(三)选择排序
- 排序算法之三----选择排序
- 排序算法(三)选择排序
- 排序算法(三):简单选择排序
- 排序算法之三--直接选择排序
- 内部排序算法之三【选择排序】
- 排序算法 -- (三)简单选择排序
- 排序算法(三)---- 选择排序
- 排序算法(三):简单选择排序
- access_ok | 检查用户空间内存块是否可用
- 网络tcp 断线情况
- jquery循环中的break,continue
- impala-java 案例
- (short (*)[2])malloc(size * count);
- 常见排序算法 (三)-选择排序
- 第7周作业1-循环大战
- MyEclipse6.5优化的一些方法
- 计算机重要会议
- linux会话浅析
- WebView里面静态内部类ExtendedZoomControls解析
- Eclipse给Jar文件指定源代码文件
- ORACLE基本数据类型总结
- 常量指针 给定一个字符串,在目标字符串中查找任意字符的第一个字符,返回指针