基本思想:每次将一个待排序的记录按关键字大小插入到前面有序表直到全部记录插入完成
void InsertSort(int a[],int n){
int i,j,k;
for(i=1;i<n;i++){//将a[1]~a[n-1]插入到前面已排序列
if(a[i]<a[i-1]){//若a[i]小于其前驱,则插入有序表
k=a[i];
for(j=i-1;k<a[j];j--){//从后往前找待插入位置
a[j+1]=a[j];//向后挪位
}
a[j+1]=k;//复制到待插入位置
}
}
}
本文深入讲解了插入排序算法的基本思想及实现过程。通过一个具体的C语言函数示例,详细介绍了如何将待排序的记录按关键字大小插入到已排序的序列中,直至整个数组有序。适合初学者理解和掌握插入排序的基本原理。
1万+

被折叠的 条评论
为什么被折叠?



