ÑÏεÃô°æÊý¾Ý½á¹¹Éè¼ÆÐÔʵÑéÏîÄ¿ ÏÂÔØ±¾ÎÄ

else {r1[k] = r[j]; j++; k++;} while(i <= m) /*ÓÐÐò±íÊ£Óಿ·Ö´¦Àí*/ {r1[k] = r[i]; i++; k++;} while(j <= high) //ÓÐÐò±íÊ£Óಿ·Ö´¦Àí {r1[k] = r[j]; j++; k++;} for(i = low, k = 0; i <= high; i++, k++)/*»º³åÏòÁ¿r1¸´ÖƵ½Ô­À´µÄrÖÐ*/ r[i] = r1[k]; }

void merge_one(RECNODE *r, int lenth, int n) {/*¶þ·¹é²¢ÖеÄ\Ò»Ì˹鲢\Ëã·¨*/ int i = 0; while(i + 2 * lenth - 1 < n) {merge(r, i, i + lenth - 1, i + 2 * lenth - 1);/*Á½×ÓÐòÁ㤶ÈÏàµÈµÄ*/ i = i + 2 * lenth;} /*Çé¿öϵ÷ÓÃmerge*/ if(i + lenth - 1 < n - 1) merge(r, i, i + lenth - 1, n - 1); /*ÐòÁÐÖеÄÓàÁô²¿·Ö´¦Àí*/ }

void mergesort(RECNODE *r, int n) {/*¶þ·¹é²¢ÅÅÐòËã·¨*/ int lenth = 1; /*ÓÐÐò×ÓÐòÁг¤¶È³õʼֵ = 1*/ while(lenth < n) {merge_one(r, lenth, n); /*µ÷ÓÃ\Ò»Ì˹鲢\µÄËã·¨*/ lenth = 2 * lenth;} /*ÓÐÐò×ÓÐòÁг¤¶È¼Ó±¶*/ }

void main() { RECNODE a[MAXSIZE]; int len, b, j, k; int loop = 1; while (loop) { printf(\ÅÅÐò×ÛºÏÁ·Ï°\\n\\n\ printf(\Í˳ö\\n\ printf(\Ö±½Ó²åÈëÅÅÐò\\n\ printf(\¼òµ¥½»»»(ðÅÝ)ÅÅÐò\\n\ printf(\¿ìËÙÅÅÐò\\n\ printf(\¼òµ¥Ñ¡ÔñÅÅÐò\\n\ printf(\¶ÑÅÅÐò\\n\ printf(\¶þ·¹é²¢ÅÅÐò\\n\ printf(\ÇëÑ¡ÔñÏîºÅ £º \ scanf(\ printf(\ if(b >= 0 && b <= 6) switch(b) { case 0: loop = 0; break; case 1: len = createList(a); frontdisplayList(a,len); insertsort(a,len); reardisplayList(a,len); break; case 2: len = createList(a); frontdisplayList(a,len); bublesort(a, len);

- 24 -

reardisplayList(a,len); break;

case 3: len = createList(a); frontdisplayList(a,len); quicksort(a, 1, len); reardisplayList(a,len); break;

case 4: len = createList(a); frontdisplayList(a,len); selesort(a, len); reardisplayList(a,len); break;

case 5: len = createList(a); frontdisplayList(a,len); heapsort(a, len); reardisplayList(a,len); break; case 6:

printf(\ÊäÈë´ýÅÅÐòÊý¾Ý(ÕûÊý£¬ÒÔ¿Õ¸ñ¸ô¿ª£¬0 ½áÊø) : \scanf(\

while(j != 0) { k++; a[k-1].key = j; scanf(\ len = k;

printf(\ÅÅÐòǰ : \

for (j = 0; j < len; j++) printf(\ printf(\ mergesort(a, len);

printf(\ÅÅÐòºó : \

for (j = 0; j < len; j++) printf(\ printf(\ break; } printf(\½áÊø´ËÁ·Ï°Âð? (0 -- ½áÊø 1 -- ¼ÌÐø) : \ scanf(\ printf(\ } }

Áù¡¢×¢ÒâÊÂÏî

1¡¢midµÄ±ä»¯¡£

2¡¢Ò»ÌË¿ìËÙÅÅÐòÈçºÎ²úÉúÁËÁ½¸ö¶ÀÁ¢µÄ´ýÅÅ×ÓÐòÁС£ 2¡¢¶ÑÅÅÐòÖÐÈçºÎÉú³É¶Ñ¶¥ÔªËØ¡£ Æß¡¢Ë¼¿¼Ìâ

1¡¢ÔÚÓÃÀ­Á´·¨½â¾ö³åÍ»µÄÉ¢ÁбíÉÏÈçºÎ²åÈëÔªËØ£¿

- 25 -