插入排序:将一个数据插入到已经排好序的序列中去,插入后保证序列依然有序,这个过程就是插入排序。
现在给定一个未知是否排好序的数组,要将其进行从小到大排序。如果使用插入排序,必须先将该数据分为两部分,一部分是排好序的,一部分是未排序的,并且逐一将未排序的部分插入到已排序的部分中去。
算法步骤描述:
1、选定数组第一个元素作为已排好序部分
2、取下一个元素作为要插入元素与前面排好序的部分从后向前比较
3、如果该元素大于插入元素,将该元素与插入元素交换
4、重复步骤3,直到找到已排序的元素小于或者等于插入元素
5、重复步骤2
程序代码:
public void insertSort(int[] a){
if(a !=null){
for(int i = 1; i < a.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;
}
}
}