参考书目《算法设计、分析与实现从入门到精通:c、c++和java》。
第一篇总结一下插入排序的算法:
void insertSort(int *a,int n){
int i,j;//j用来记录要插入的元素的下标
int key;//用来记录要插入的数
for(j=1;j<n;j++){
key=a[j];
i=j-1;
while(i>=0&&a[i]>key){
a[i+1]=a[i];
i--;
}
a[i+1]=key;
}
}
形参用指针,即传递的是数组元素的地址,这样能控制我们想要排序的部分:
int a[10]={,3,4,2,1,5,6,7,8,11,21};
insertSort(a+2,5);//从第三个元素开始到之后的5个数字进行排序。