插入排序
思想:每次将一个待排序的记录按大小插入合适位置,直到全部插完。
直接插入排序
区别:选择排序 选择最小值插入,比较次数与序列无关
插入排序 插入值具有随机性,与当前的序列有一定关系
思想:将第i个元素插入前i-1个元素中,选取适当位置K 将K到i-1元素后移,插入到K中
void insertsort(int A[], int n){
int i,j;
for (i=1;i<n;i++){ //从第一个元素开始遍历
if(A[i]<A[i-1])
for(j=i-1;A[j]>A[i];j--) //从i-1遍历,如果j个元素比i小 后移
A[j+1]=A[j];
A[j+1]=A[i];
}
}