【正文】
計(jì)算機(jī)中實(shí)現(xiàn)這么一個(gè)很簡單的想法就需要涉及到很多專業(yè)知識,為了完成設(shè)計(jì),在前期工作中,基本都是以學(xué)習(xí)C語言為主,所以浪費(fèi)了很多時(shí)間,但是我在這次課設(shè)中也學(xué)到了很多。把我在書本上難以理解的東西都給解決了,同時(shí)還鍛煉了我的動(dòng)手操作能力。我很感激這次的課題設(shè)計(jì)。參考文獻(xiàn)[1]嚴(yán)蔚敏 吳偉民 著, 數(shù)據(jù)結(jié)構(gòu)(C語言版),清華大學(xué)出版社,[2]李春葆 著,數(shù)據(jù)結(jié)構(gòu)教程,清華大學(xué)出版社,[3] [美]Deitel,.,[美]Deitel, C程序設(shè)計(jì)經(jīng)典教程,清華大學(xué)出版社,2006[4] ++:[5]++:附 錄include void merge( int a[ ] , int b[ ] , int l , int m , int h ){//將有序的a[l..m]和b[m+1..h]合并成有序表b[l..h] int i,j,k。 i=l。 j=m+1。 k=l。//將兩個(gè)有序表中較小的放入b中 while( i=m amp。amp。 j=h){ if( a[i] a[j]) b[k++]=a[i++]。 else b[k++]=a[j++]。 } while( i=m ) b[k++]=a[i++]。 while( j=h ) b[k++]=a[j++]。 for(int q=l。 q=h。 q++)//必要操作,有的課本會(huì)遺漏此步,使a與b相等 a[q]=b[q]。}void merge_sort(int a[ ] ,int b[ ] ,int l ,int h){ if( l == h ) b[l]=a[l]。 else { int m。 m = (l+h)/2。 merge_sort( a , b , l , m )。//對第一部分調(diào)用遞歸排序 merge_sort( a , b , m+1 , h )。//對第二部分調(diào)用遞歸排序 merge( b , a , l , m , h )。//將兩個(gè)有序表合并為一個(gè)有序表 }}void binary(int a[ ] ,int n){ int *b。 b=new int[n]。//b為臨時(shí)數(shù)組,函數(shù)結(jié)束后釋放 merge_sort( a , b , 0 , n1 )。}int main( ){ int n,i。 int *a。 for(i = 0。 i 60。 i++) printf(*)。 printf(\nplese enter what the number of pare:)。 scanf(%d,amp。n)。 a=new int[n]。 for(int i=0。 in 。i++) scanf(%d,amp。a[i])。 binary( a , n)。 for(int i=0。 in1 。i++) printf(%d,a[i])。 printf(%d,a[n1])。 printf(\n)。 for(i = 0。 i 60。 i++) printf(*)。} 11 / 11