算法(第四版)——02选择排序
来源:互联网 发布:淘宝客网站要多大空间 编辑:程序博客网 时间:2024/05/16 14:15
选择排序:1,找到数组中最小的那个元素,2,将它和数组的第一个元素交换位置(如果第一个元素最小,那么就和自己交换)。3,在剩下的元素中找到最小的元素,将它与第二个元素交换位置。如此往复,直到整个数组排序完成。
下面以对一个整型数组排序为例进行代码实现:
public class Selection {public static void selectionSort(int[] a){int N = a.length;for (int i = 0; i < N; i++) {int min = i; for (int j = i+1; j < N; j++) {if(a[j]<a[min]) {min = j;}}int temp = 0;temp = a[min];a[min] = a[i];a[i] = temp;}}public static void main(String[] args) {int[] a = {13,67,22,45,12,89,76,42,67};System.out.println("原始顺序是:");for (int i : a) {System.out.print(i + " ");}System.out.println();selectionSort(a);System.out.println("排序后的顺序是:");for (int i : a) {System.out.print(i + " ");}}}
运行结果为:
原始顺序是:
13 67 22 45 12 89 76 42 67
排序后的顺序是:
12 13 22 42 45 67 67 76 89
算法第四版的选择排序代码如下:
public class Selection {@SuppressWarnings("rawtypes")public static void sort(Comparable[] a) {int N = a.length;for (int i = 0; i < N; i++) {int min = i;for (int j = i+1; j < N; j++) {if(less(a[j],a[min]))//是否a[j]<a[min],成立的话的则min=jmin = j;}exch(a,i,min);}}@SuppressWarnings("rawtypes")private static void exch(Comparable[] a, int i, int j) {Comparable t = a[i];a[i] = a[j];a[j] = t;}@SuppressWarnings({ "rawtypes", "unchecked" })private static boolean less(Comparable v, Comparable w) {return v.compareTo(w)<0;}@SuppressWarnings("rawtypes")private static void show(Comparable[] a){for (int i = 0; i < a.length; i++) {System.out.print(a[i] + " ");if((i+1)%5==0)System.out.println();}System.out.println();}}在其中添加主方法即可运行。
0 0
- 算法(第四版)——02选择排序
- 《算法(第四版)》排序-----选择排序
- 算法(第四版)——03插入排序
- 算法(第四版)——04希尔排序
- 算法(第四版)——05归并排序
- 算法(第四版)——05快速排序
- 排序算法—选择排序
- 算法(第四版)学习笔记之java实现选择排序
- 《算法(第四版)》排序-----插入排序
- 《算法(第四版)》排序-----希尔排序
- 《算法(第四版)》排序-----归并排序
- 《算法(第四版)》排序-----快速排序
- 《算法(第四版)》排序-----堆排序
- 【算法】排序算法(一)——选择排序
- 排序算法之选择排序——简单选择排序
- 数据结构&算法实践—【排序|选择排序】选择排序
- 算法 —— 选择排序
- 算法——选择排序
- 2017年大数据从业者又要涨工资了!
- 文字排版中的设计四原则(三)
- 65条最常用正则表达式
- http://blog.csdn.net/huachao1001/article/details/52247268
- Timer的缺陷-不按定时时间执行【已入坑】
- 算法(第四版)——02选择排序
- linux 内核与用户空间通信之netlink使用方法
- 【常用JAVA代码片段】在android中如何打开文件节点,写节点
- 游戏党福利 《PlayCast》让你手机玩PS4游戏
- 64位IIS7.5 上部署32位应用程序,Office组件访问失
- JSON的三种解析方式
- Java字符串加密解密MD5
- 面向对象的六大原则(之二)
- Spark多文件输出(MultipleTextOutputFormat)