排序?qū)嶒瀳蟾鎋第1頁
排序?qū)嶒瀳蟾鎋第2頁
排序?qū)嶒瀳蟾鎋第3頁
排序?qū)嶒瀳蟾鎋第4頁
排序?qū)嶒瀳蟾鎋第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

計算機科學與技 指導教師 起止時間

任務(wù):n個隨機整數(shù)(0以上(以上機運行程序所耗費的時間為準進行對比12數(shù)據(jù)數(shù)量能夠預(yù)先擬定(0以上 int KeyType; intInfoType; struct{ key; //}RedType; struct{ * ////r[0]intlength // SqList(一)60.(二)由課題規(guī)定可將程序劃分為下列幾個模塊(即實現(xiàn)程序功效所需的函數(shù)創(chuàng)立排序表函數(shù)LQSort(三)QSortQSort(for循環(huán)實現(xiàn)重復(fù)選擇。其循環(huán)構(gòu)造以下:for{longstart,end;{case printf("%dms\n",end-start);{}fprintf(fp,"%d",L.r[i]);case printf("%dms\n",end-start);fp=fopen("D:.txt","w");{}fprintf(fp,"%d",L.r[i]);case3: printf("%dms\n",end-start);fp=fopen("D:起泡排 {}fprintf(fp,"%d",L.r[i]);case4: QSort(L,0,L.length);printf("%dms\n",end-start);fp=fopen("D:.txt","w");{printf("打開文獻失敗}fprintf(fp,"%d",L.r[i]);case5: printf("%dms\n",end-start);fp=fopen("D:.txt","w");{}fprintf(fp,"%d",L.r[i]);case0:printf("\t退 出!\n");return;}}(四)(五)1、r批示線性表的基址,length批示線性表的現(xiàn)在長度,將隨機生成的數(shù)30000代碼描述:StatusInitList_Sq(SqList //FILEL.r=(RedType*)malloc(LIST_INIT_SIZE*sizeof(RedType));if(!L.r) exit(OVERFLOW);//存儲分派失敗 //表長度為30001for(inti=1;i<=L.length;i++){}fprintf(fp,"%d",L.r[i]);return是L.r[i].key<L.r[i-1].key 否 是j=i-代碼描述:voidInsertsort(SqList&L)//L for(int (LT(L.r[i].key,L.r[i-1].key))L.r[i]{L.r[0]=L.r[i]; for(intj=i-1;LT(L.r[0].key,L.r[j].key);j--)//位置j批示了第一種key≤L.r[i].key的元素 O(n2)算法原理:12、組數(shù)逐次減??;3、組數(shù)=1,結(jié)束。i<L.length L.r[i].key<L.r[i-dk].key 是L.r[0]=L.rj=i-(j>0)&&(LT(L.r[0].key,L.r[j].key 是j-j-L.r[j+dk]=L.r[0]L.r[j+dk]=L.r代碼描述:voidShellInsert(SqList&L,int{//Shell排序,dk為步長inti;{if(LT(L.r[i].key,L.r[i-dk].key{L.r[0]=L.rintfor(j=i-dk;(j>0)&&(LT(L.r[0].key,L.r[j].key));j-L.r[j+dk]=L.rL.r[j+dk]=L.r}}}4、代碼描述:voidShellSort(SqList dlta[],int//Shell排序,dlta[]為增量序列,tintk;}//L.r[j]j=n-代碼描述:voidBubble_sort(SqList{RedTypex;intn; (inti=1;i<n;intflag=0;進入循環(huán),清標志for(intj=n-1;j>=i;j--){ //L.r[j]←→L.r[j+1]}if(flag==0) //}}ri前的統(tǒng)計排序碼<=ri.keyri后的排序碼,該過程為一趟快速排序。這樣就擬定了Ri在序列中的最后位置,同時將序列分成兩個子序列。Low<highLow<high 是low<high&& 是--L.r[low]low<high&& 否是L.r[low]L.r[low]return代碼描述:intPartition(SqList&L,intlow,int /*r[low…h(huán)igh]的統(tǒng)計,使樞軸統(tǒng)計到位,并返回其位置。返回時,在樞軸之前的 intpivotkey; //pivotkey變量while(low<high){//從表的兩端交替地向中間掃描RedTypeRedTypewhile(low<high&&L.r[high].key>=pivotkey)--high;while(low<high&&L.r[low].key<=pivotkey) } return 7、流程圖 開pivotloc=Partition(L,low,high)QSort(L,low,pivotloc-1)QSort(L,pivotloc+1,high) intlow,inthigh){//對次序表L中的子序列r[iflow<high){//長度 pivotloc=PartitionL,low,highr[QSort(L,low,pivotloc-1); QSort(L,pivotloc+1,high);//1}}8、1R[1]~R[n]中選用最小值,R[1]交換2R[2]~R[n]中選用最小值,R[2]交換第 第n-1R[n-1]~R[n]中選用最小值,R[n-1]交換i<L.length 是否是i<L.length 是否是否是代碼描述:voidSelectSort(SqList對次序表進行簡樸選擇排序RedTypex;for(i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論