算法--选择排序
2017-03-16 14:31
197 查看
1、选择排序:
从数组0角标开始,每次遍历,通过对比大小,记录最小或最大值的角标,将0角标数值与其交换,以此类推完成排序。选择排序,是每次选出最值后,第二次再从剩余数选出最值,和插入排序区别,插入排序每次从剩余数中选第一个,去排好序的数组对比找位置插入,而选择排序,是每次从剩余数中选出最值,排到已经拍好序的数组尾部,完成排序。
2、上代码:
总结:两层for循环,外层遍历所有元素,找到需要排序的制定位置,内层找到剩余数的最值角标,之后完成最值与制定位置的交换,完成排序。
从数组0角标开始,每次遍历,通过对比大小,记录最小或最大值的角标,将0角标数值与其交换,以此类推完成排序。选择排序,是每次选出最值后,第二次再从剩余数选出最值,和插入排序区别,插入排序每次从剩余数中选第一个,去排好序的数组对比找位置插入,而选择排序,是每次从剩余数中选出最值,排到已经拍好序的数组尾部,完成排序。
2、上代码:
private int[] selectOrder(int[] order){ for (int i = 0;i<order.length;i++){ int temp = i; for (int j=i+1;j<order.length;j++){ if(order[j] < order[temp]){ temp = j; } } if(order[i] > order[temp]){ int v = order[temp]; order[temp] = order[i]; order[i] = v; } } return order; }
总结:两层for循环,外层遍历所有元素,找到需要排序的制定位置,内层找到剩余数的最值角标,之后完成最值与制定位置的交换,完成排序。
相关文章推荐
- 怎样编写一个程序,把一个有序整数数组放到二叉树中? 编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?
- C#算法-----(一)选择排序
- 常用算法-直接选择排序
- 【算法导论】 2.2选择排序
- 选择排序的算法
- C#算法 选择排序
- 几种常用的排序算法:插入排序、冒泡排序、选择排序的算法及C++实现
- 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。
- 用JAVA实现排序算法之三:直接选择排序
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- c# 排序 算法 函数 冒泡 选择 插入 希尔
- 算法-选择排序
- 算法 - 选择排序(C#)
- 算法不会,尚能饭否之排序——直接选择排序
- java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排
- C#算法-----(一)选择排序
- 【C#算法】冒泡排序 选择排序 插入排序 希尔排序--转
- 简单选择排序的算法实现
- 算法熟记-排序系列-选择排序
- 常用的选择排序.Shell排序.快速排序.冒泡排序.插入排序的算法