第i次排序将a[i]排到0-i中合适的位置,对于几乎排好序的情况很高效,最坏情况发生在数列逆序时,O(n^2)
C语言实现
void insertsort(int a[],int n){
int i,tmp,j;
for(i = 1;i<n;i++){
tmp = a[i];
j = i;
while(j>0&&tmp<a[j-1]){
a[j] = a[j-1];
j--;
}
a[j] = tmp;
}
}
第i次排序将a[i]排到0-i中合适的位置,对于几乎排好序的情况很高效,最坏情况发生在数列逆序时,O(n^2)
C语言实现
void insertsort(int a[],int n){
int i,tmp,j;
for(i = 1;i<n;i++){
tmp = a[i];
j = i;
while(j>0&&tmp<a[j-1]){
a[j] = a[j-1];
j--;
}
a[j] = tmp;
}
}