各种排序算法

来源:互联网 发布:东北爷们网络神曲 编辑:程序博客网 时间:2024/06/07 03:14

insertSort

public static int[] insertSort(int[] a) {for (int j = 1; j < a.length; j++) {int i = j - 1;while (i >= 0) {   //每次从最右边检查到第一个元素if (a[i] > a[i + 1]) {int temp = a[i];a[i] = a[i + 1];a[i + 1] = temp;}i--;      //每次从最右边检查到第一个元素}}return a;}public static int[] insertSort(int[] a) {for (int j = 1; j < a.length; j++) {int key = a[j];int i = j - 1;while ((i >= 0) && (a[i] > key)) {a[i+1] = a[i];i--;}a[i+1]=key;}return a;}

selectSort

public static int[] selectSort(int[] a) {for (int i = 0; i < a.length - 1; i++) {for (int j = i + 1; j < a.length; j++) {if (a[j] < a[i]) {int temp = a[i];a[i] = a[j];a[j] = temp;}}}return a;}/*-------------------高效--------------------------*/public static int[] selectSort1(int[] a) {for (int i = 0; i < a.length - 1; i++) {int index = i;for (int j = i + 1; j < a.length; j++) {if (a[index] > a[j]) {index = j;// index始终指向for(j)当前最小值}}int temp = a[index];//每次for(i)的最小值互换位置a[index] = a[i];a[i] = temp;}return a;}


原创粉丝点击