C语言:
(1)整数数组版:
头文件:
void insertionSort(int *a,int n){
int i,j,key;/*key的类型与数组a的元素类型相同*/
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;
}
}
测试代码:
#include<stdio.h>
#include<stdlib.h>
#include"insertionsort.h"
int main(int argc,char** argv){
int a[]={5,1,9,4,6,2,0,3,8,7},i;
insertionSort(a+1,7);//对[0...9]中的a[1...7]排序
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
system("pause");
return (EXIT_SUCCESS);
}
排序结果:
5012346987