當前位置:文檔之家 > 數據結構試驗2.8

數據結構試驗2.8

2.8內排序

實驗2.8.1 實現直接插入排序算法

1.編寫一個程序,使用直接插入排序法對以下數據

{75,87,68,92,88,61,77,96,80,72}進行排序。

2. #include

#define MAXE 20 //線性表中最多元素個數

typedefintKeyType;

typedef char InfoType[10];

typedefstruct //記錄類型

{

KeyType key; //關鍵字項

InfoType data; //其他數據項,類型為InfoType

} RecType;

void InsertSort(RecType R[],int n) //對R[0..n-1]按遞增有序進行直接插入排序

{

inti,j,k;

RecType temp;

for (i=1;i

{

temp=R[i];

j=i-1; //從右向左在有序區R[0..i-1]中找R[i]的插入位置

while (j>=0 &&temp.key

{

R[j+1]=R[j]; //將關鍵字大于R[i].key的記錄后移

j--;

}

R[j+1]=temp; //在j+1處插入R[i]

printf("i=%d,",i); //輸出每一趟的排序結果

printf("插入%d,結果為: ",temp);

for (k=0;k

printf("%3d",R[k].key);

printf("\n");

}

}

void main()

{

inti,k,n=10;

KeyType a[]={75,87,68,92,88,61,77,96,80,72};

RecTypeR[MAXE];

for (i=0;i

R[i].key=a[i];

printf("初始關鍵字: "); //輸出初始關鍵字序列

玖玖资源3658稳定更新