准备工作

- 理解数组的使用
- 理解循环的使用以及循环的嵌套使用
- 分析问题:从上图动图可以看出,插入排序的主旨思想是在一个有序的排列中插入一个元素,默认认为第一个是有序,从后面的元素中比较和前面已经排好序的元素挨个比较,插入合适的位置;因此需要一个循环(外层循环)用来控制元素个数;还需另外一个循环(里层循环)用来控制当前第几个元素后面的元素挨个与前面的有序元素比较,得出插入的合适位置。
如果文字理解不清楚,用代码演示就清晰明了
代码实现
public class Test {
public static void main(String[] args) {
int[] ints = insertionSort(new int[]{45,22,55,33,44,66,11,23,54,88,16});
System.out.println(Arrays.toString(ints));
}
public static int[] insertionSort(int[] array){
for (int i = 1; i <array.length ; i++) {
for (int j = i-1; j >=0 ; j--) {
if (array[j+1]<array[j]){
int temp=array[j+1];
array[j+1]=array[j];
array[j]=temp;
}
}
}
return array;
}
}