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;
}