插入排序可以理解为向一个有序数组中插入新的元素使生成的新数组认为有序的。
如预排序含n个元素的数组。从第二个元素开始插入到只有一个元素的有序数组(只含一个元素,必为有序)使之成为有序数组,然后插入第三个元素生成大小为3的有序数组,以此类推,直到把Arr[n]插入到(Arr[1],Arr[2].....Arr[n-1],使之生产成为含n个元素的有序数组
例子:
//实现代码
for(int i=1;i<arr.length;i++){
for(int j=i;j>0;j--){//将arr[j]插入到arr[j-1]
if(arr[j-1]>arr[j]){
int temp=arr[j];
arr[j]=arr[j-1];
arr[]j-1]=temp;
}
else{
break;}
}
}
算法适用于少量数据的排序,
时间复杂度为O(n^2)。是稳定的排序方法