一、基本原理:
- 对于给定的一组记录,初始时假设第一个记录自成一个有序序列。。其余记录为无序序列
- 接着从第二个记录开始,按照记录的大小一次将当前处理的记录插入到其之前的有序序列中
- 直至最后一个记录插入到有序序列中为止
二、代码实现:
思路:
- 输入:数组,无返回值
- 从第二个元素开始,遍历每一个元素
- 将每一个元素与它之前的记录比较,直至找到一个比当前遍历元素a小的元素b,则将本次遍历元素a插入到b之后
public static void insertSort(int[] a){
//从第二个元素开始遍历
for(int i=1; i<num.length;i++){
int temp = a[i];//本次遍历元素
int j=i;//本次遍历下标
//遍历,查找比本次遍历元素小的元素
while(j>=1 && a[j-1] > temp){
a[j] = a[j-1];//将大的元素往后移
j--;
}
a[j]=temp;
}
}