跳至正文

算法导论 习题之插入排序从大到小

  • 技术

插入排序其实很好理解,就是保证前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;
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注