插入排序其实很好理解,就是保证前i – 1个都是排好序了的,再排第i个,下面这个是从大到小排序的:
/* 从大到小的插入排序 */
void insert_sort(int a[], int n)
{
int i, j;
int key;
for(i = 1; i < n; i++){
key = a[i];
for(j = i - 1; (j >= 0) && (key > a[j]); j--){
a[j + 1] = a[j];
}
a[j + 1] = key;
}
}
/* 驱动程序如下 */
int main(void)
{
int a[10];
int i;
for(i = 0; i < 10; i++){
scanf(%d, &a[i]);
}
insert_sort(a, 10);
for(i = 0; i < 10; i++){
printf(%d , a[i]);
}
return 0;
}