插入排序.png
从第二个元素开始,与之前的每一个元素比较,进行大小判定,如果比之前的某一个元素小,则交换位置(倒序排序)
/**
* 插入排序
*
* @param array 待排序的数组
* @param rules 排序规则 desc | asc
*/
public static void insertSort(int[] array, String rules) {
if (!(rules.length() == 0)) {
if (!(array.length == 1 || array.length == 0)) {
if ("asc".equals(rules)) {
//总遍历趟数为数组长度-1次
for (int i = 1; i <= array.length - 1; i++) {
//使当前元素与前一个元素两两比较,直到下标为0的那个元素
for (int j = i; j > 0; j--) {
if (array[j] < array[j - 1]) {
int temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
}
}
}
}
if ("desc".equals(rules)) {
for (int i = 1; i <= array.length - 1; i++) {
for (int j = i; j > 0; j--) {
if (array[j] > array[j - 1]) {
int temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
}
}
}
} else {
return;
}
} else {
return;
}
} else {
return;
}
}