package 備份類;
/**
* 插入排序算法
*/
public class 插入排序 {
public static void main(String[] args) {
int[] a = { 7, 6, 5, 4, 5, 7, 8, 4, 3 };
outArr(a);
insertSort(a);
outArr(a);
}
/**
* 備份當前的元素,只要前面的元素<當前的元素就向後移動一位
*/
public static void insertSort(int[] a) {
int i, j, temp;
for (i = 0; i < a.length - 1; i++) {
// a[i+1]就是當前的對象:比較哨
temp = a[i + 1];
j = i;
// 向後移動一位
while (j > -1 && temp <= a[j]) {
a[j + 1] = a[j];
j--;
}
// 把備份的這個放在移動之後空出的那一位上
a[j + 1] = temp;
}
}
/**
* 打印當前的數組
*/
public static void outArr(int[] a) {
int n = a.length;
for (int i = 0; i < n; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}
}
JAVA排序算法---直接插入排序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.