算法(第四版)学习笔记之java实现选择排序
来源:互联网 发布:盘点数据管理制度 编辑:程序博客网 时间:2024/04/29 16:41
选择排序步骤:
1.找到数组中参与遍历比较的所有元素中的最小元素的下标;
2.将最小元素与数组中参与遍历比较的第一个元素进行交换(如果第一个元素就是最小元素的话,那么也会进行一次交换);
3.若数组中还有需要参与遍历比较的元素,则跳转到步骤1;否则排序结束。
在算法第四版中给出的所有排序均是适用于任意实现了Comparable接口的数据类型,若要将数字作为测试用例,请勿使用基本数据类型,改用Integer等实现了Comparable接口的对象。
选择排序代码如下:
/** * * @author seabear * @Description 选择排序每次遍历总是返回参与遍历的元素中最小元素的下标,并将该最小元素与参与遍历的首元素进行交换 */public class SelectionSort {public static void sort(Comparable[] a){int N = a.length;int minFlag = 0;for(int i = 0; i < N; i++){minFlag = i;for(int j = i + 1; j < N; j++){if(less(a[j],a[minFlag])){minFlag = j;}}exch(a,i,minFlag);}}private static boolean less(Comparable v,Comparable w){return v.compareTo(w) < 0;}private static void exch(Comparable[] a ,int i,int j){Comparable temp = a[i];a[i] = a[j];a[j] = temp;}private static void show(Comparable[] a){for(int i = 0; i < a.length; i++){System.out.print(a[i] + " ");}System.out.println();}private static boolean isSort(Comparable[] a){for(int i = 1 ; i < a.length ; i++){if(less(a[i],a[i-1])){return false;}}return true;}public static void main(String[] args){Integer[] a = new Integer[10];for(int i = 0; i < 10; i++){a[i] = (int) (Math.random() * 10 + 1);System.out.print(a[i] + " ");}System.out.println();sort(a);assert isSort(a);show(a);}}
0 0
- 算法(第四版)学习笔记之java实现选择排序
- 算法(第四版)学习笔记之java实现插入排序
- 算法(第四版)学习笔记之java实现希尔排序
- 算法(第四版)学习笔记之java实现归并排序
- 算法(第四版)学习笔记之java实现快速排序
- 算法(第四版)学习笔记之java实现堆排序
- [学习笔记]排序算法之选择排序
- 算法学习笔记--排序之选择排序
- Java学习笔记排序算法----------选择排序
- 算法学习笔记之选择排序算法
- 算法(第四版)学习笔记之归并排序的优化
- 算法(第四版)学习笔记之java实现栈和队列(链表实现)
- 算法(第四版)学习笔记之java实现能够动态调整数组大小的栈
- 算法(第四版)学习笔记之java实现基于堆的优先队列
- 算法(第四版)学习笔记之二分查找的递归与非递归java实现
- 算法(第四版)学习笔记之java实现二叉查找树
- 算法学习之一java实现选择排序
- 黑马程序员—Java基础学习笔记之排序算法:选择排序&冒泡排序
- POJ 3252 Round Numbers (简单数位DP)
- 小胖说事32-----iOS关于block使用的5点注意事项
- git 工具GitEye使用
- html中from表单enctype值
- sharedPreferences保存用户参数设置和参数的回显
- 算法(第四版)学习笔记之java实现选择排序
- 常用Hbase Shell
- java数组--04
- SQL行转列(case when then )
- Class 'Mews\Captcha\CaptchaServiceProvider' not found
- HBase性能优化方法总结(四):数据计算
- GRE写作必备句型
- sql 联合查询
- iOS适配iPhone5s,6 ,6p