插入排序:
稳定的排序算法。插入排序相当于从第一个元素开始,将后面的元素一个个往进插,新插的元素一个一个与前面的比较,遇到比自己大的交换,遇到比自己小的则插入这个位置。所以左边的元素永远是有序的。
适用于小规模数据或者大片有序的数组。
复杂度分析:
时间复杂度:最坏: O(n^2) 最好:O(n)
插入排序代码:
public static int[] InsertSort1(int arr[],int len){
for(int i=1;i<arr.length;i++) {
int j;
int temp=arr[i];
for(j=i-1;j>=0;j--) {
if(temp>arr[j]) {
break;
}else {
arr[j+1]=arr[j];
}
}
arr[j+1]=temp;
}
return arr;
}