?? 習題1-直接插入排序.c
字號:
#include "datastru.h"
#include <stdio.h>
void insertsort(RECNODE *r, int n)
{/*直接插入排序*/
int i,j;
for(i = 2; i <= n; i++)
{ r[0] = r[i]; j = i - 1; /*r[0]是監視哨,j表示當前已排好序列的長度*/
while(r[0].key < r[j].key) /*確定插入位置*/
{r[j + 1] = r[j]; j--;}
r[j + 1] = r[0]; /*元素插入*/
}
}
main( )
{ RECNODE a[MAXSIZE];
int i, j, k, len;
printf("\n\n輸入待排序數據(整數,以空格隔開,0 結束) : "); k = 0; scanf("%d",&j);
while(j != 0) { k++; a[k].key = j; scanf("%d",&j); }
len = k;
printf("\n排序前 : ");
for (i = 0; i < len; i++) printf(" %d",a[i+1].key);
printf("\n");
insertsort (a,len);
printf("\n\n排序后 : ");
for (i = 0; i < len; i++) printf(" %d",a[i+1].key);
printf("\n\n");
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -