public class InsertionSort {
public static void main(String[] args) {
int [] test = {5,2,7,4,9,3,1,2,5};
// 外层i从1开始,因为认为0位是已经排好的
for (int i = 1; i < test.length; i++){
// 取出第i的数字
int data = test[i];
// 向前遍历对比,直到第0位
int j = i - 1;
for (;j >= 0;){
// j比data大
if (test[j] > data){
// 第j-1位改成j的值,同时继续向前遍历
test[j + 1] = test[j];
j--;
} else {
// 当当前的j位数比i位小,则j前面的所有的数都比i小
break;
}
}
// 大于data的数都已向后移,则第j
test[j + 1] = data;
}
System.out.print("最后结果:");
// 最后结果
for (int i = 0; i <= test.length - 1; i++){
System.out.print(test[i] + ",");
}
}
}
结果:
最后结果:1,2,2,3,4,5,5,7,9,