閱讀以下說明和C代碼,填寫程序中的空(1)~(5),將解答寫入答題紙的對(duì)應(yīng)欄內(nèi)。
【說明】
直接插入排序是一種簡(jiǎn)單的排序方法,具體做法是:在插入第i個(gè)關(guān)鍵碼時(shí),k1,k2,…,ki-1已經(jīng)排好序,這時(shí)將關(guān)鍵碼ki依次與關(guān)鍵碼ki-1,ki-2,…,進(jìn)行比較,找到ki應(yīng)該插入的位置時(shí)停下來,將插入位置及其后的關(guān)鍵碼依次向后移動(dòng),然后插入ki。
例如,對(duì){17,392,68,36}按升序作直接插入排序時(shí),過程如下:
第1次:將392(i=1)插入有序子序列{17},得到{17,392};
第2次:將68(i=2)插入有序子序列{17,392},得到{17,68,392};
第3次:將36(i=3)插入有序子序列{17,68,392},得到{17,36,68,392},完成排序。
下面函數(shù) insertSort用直接插入排序?qū)φ麛?shù)序列進(jìn)行升序排列,在main函數(shù)中調(diào)用insertSort并輸出排序結(jié)果。
【C代碼】
void insert Sort(int data[],int n)
/*用直接插入排序法將data[0]~ data[n-1]中的n個(gè)整數(shù)進(jìn)行升序排列*/
{int i,j; int tmp;
for(i=1; i
tmp=data[i]; //備份待插入的元素
data[i]=(1);
for(j=i-2;j>=0 && data[j] > tmp;j----)//查找插入位置并將元素后移
(2);
(3) =tmp; //插入正確位置
}/*if*/
}/*for*/
}/*insertSort*/
int main()
{ int *bp,*ep;
int n,arr[]={17,392,68,36,291,776,843,255};
n = sizeof(arr) / sizeof(int);
insertSort(arr,n);
bp=(4);ep = arr+n;
for( ;bp
return 0;閱讀以下說明和C代碼,填寫程序中的空(1)~(5),將解答寫入答題紙的對(duì)應(yīng)欄內(nèi)。
【說明】
直接插入排序是一種簡(jiǎn)單的排序方法,具體做法是:在插入第i個(gè)關(guān)鍵碼時(shí),k1,k2,…,ki-1已經(jīng)排好序,這時(shí)將關(guān)鍵碼ki依次與關(guān)鍵碼ki-1,ki-2,…,進(jìn)行比較,找到ki應(yīng)該插入的位置時(shí)停下來,將插入位置及其后的關(guān)鍵碼依次向后移動(dòng),然后插入ki。
例如,對(duì){17,392,68,36}按升序作直接插入排序時(shí),過程如下:
第1次:將392(i=1)插入有序子序列{17},得到{17,392};
第2次:將68(i=2)插入有序子序列{17,392},得到{17,68,392};
第3次:將36(i=3)插入有序子序列{17,68,392},得到{17,36,68,392},完成排序。
下面函數(shù) insertSort用直接插入排序?qū)φ麛?shù)序列進(jìn)行升序排列,在main函數(shù)中調(diào)用insertSort并輸出排序結(jié)果。
【C代碼】
void insert Sort(int data[],int n)
/*用直接插入排序法將data[0]~ data[n-1]中的n個(gè)整數(shù)進(jìn)行升序排列*/
{int i,j; int tmp;
for(i=1; i
tmp=data[i]; //備份待插入的元素
data[i]=(1);
for(j=i-2;j>=0 && data[j] > tmp;j----)//查找插入位置并將元素后移
(2);
(3) =tmp; //插入正確位置
}/*if*/
}/*for*/
}/*insertSort*/
int main()
{ int *bp,*ep;
int n,arr[]={17,392,68,36,291,776,843,255};
n = sizeof(arr) / sizeof(int);
insertSort(arr,n);
bp=(4);ep = arr+n;
for( ;bp
return 0;
}