插入排序.png
從第二個元素開始,與之前的每一個元素比較,進行大小判定,如果比之前的某一個元素小,則交換位置(倒序排序)
/**
* 插入排序
*
* @param array 待排序的數(shù)組
* @param rules 排序規(guī)則 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)) {
//總遍歷趟數(shù)為數(shù)組長度-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;
}
}