插入排序的原理是默认前面的元素都是已经排序好的,然后从后面逐个读取插入到前面排序好的合适的位置,就相当于打扑克的时候每获取一张牌的时候就插入到合适的位置一样。
以{26,53,48,11,13,48,32,15)为例,插入排序的过程如下所示:
动态演示 :
代码 :
public static void main(String[] args) {
int[] arr = {10, 78, 65, 32, 21, 89, 13, 54, 7, 3};
insertSort(arr);
}
public static void insertSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int j = i;
int temp = arr[i];
for (; j > 0; j--){
if (arr[j - 1] > temp){
arr[j] = arr[j - 1];
}else {
break;
}
}
arr[j] = temp;
}
//打印
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}