實驗十二 排序算法_第1頁
實驗十二 排序算法_第2頁
實驗十二 排序算法_第3頁
實驗十二 排序算法_第4頁
實驗十二 排序算法_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、昆明理工大學信息工程與自動化學院學生實驗報告(2013 2014 學年第三學期)課程名稱:數(shù)據(jù)結構開課實驗室:信自樓4422013年12月24日年級、專業(yè)、班計科122班 學號 201210405204 姓名鄒華宇成績實驗項目名稱簡單的排序算法指導教師胡守成教師評語教師簽名:年月日注:報告內容按實驗須知中七點要求進行。一、實驗目的和要求掌握各種查找算法理解和實現(xiàn);增強上機編程調試能力;程序的主要功能用戶輸入任意個數(shù),產(chǎn)生相應的隨機數(shù)用戶可以自己選擇排序方式(直接插入排序、折半插入排序、起泡排序、快速排序、 選擇排序、堆排序、基數(shù)排序)的一種程序給出原始數(shù)據(jù)、排序后從小到大的數(shù)據(jù),并給出排序所用

2、的時間。二、實驗原理及基本技術路線圖(方框原理圖)各個排序是算法思想:(1)直接插入排序:將一個記錄插入到已排好的有序表中,從而得到一個新的, 記錄數(shù)增加1的有序表。(2)折半插入排序:插入排序的基本插入是在一個有序表中進行查找和插入, 這個查找可利用折半查找來實現(xiàn),即為折半插入排序。(3)起泡排序:首先將第一個記錄的關鍵字和第二個記錄的關鍵字進行比較,若為逆序,則將兩個記錄交換,然后比較第二個記錄和第三個記錄的關鍵字。依此類 推,直到第N-1和第N個記錄的關鍵字進行過比較為止。上述為第一趟排序,其結果 使得關鍵字的最大紀錄被安排到最后一個記錄的位置上。然后進行第二趟起泡排序, 對前N-1個記

3、錄進行同樣操作。一共要進行N-1趟起泡排序。(4)快速排序:通過一趟排序將待排記錄分割成獨立的兩部分,其中一部分記 錄的關鍵字均比另一部分記錄的關鍵字小,則可分別對這兩部分記錄繼續(xù)進行排序, 已達到整個序列有序。(5)選擇排序:通過N-I次關鍵字間的比較,從N-I+1個記錄中選出關鍵字最 小的記錄,并和第I(1=I=N)個記錄交換。(6)堆排序:在堆排序的算法中先建一個大頂堆,既先選得一個關鍵字作為最 大的記錄并與序列中最后一個記錄交換,然后對序列中前N-1記錄進行選擇,重新將 它調整成一個大頂堆,如此反復直到排序結束。(7)基數(shù)排序:按最低位優(yōu)先法先對低位關鍵字進行排序,直到對最高位關鍵 字

4、排序為止,經(jīng)過若干次分配和收集來實現(xiàn)排序。三、所用儀器、材料(設備名稱、型號、規(guī)格等)聯(lián)想計算機一臺Microsoft Visual c+ 6.0四、程序源代碼(*cpp),業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)/*排序算法 設計要求:利用隨機函數(shù)產(chǎn)生N個隨機整數(shù)(N = 500,1000,1500,2000,2500,,30006,利用直接插入排序、折半插入排序,起泡排序、快速排序、|選擇排序、堆排序,基數(shù)排序 七種排序方法 *業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè),*/ #i

5、nclude stdio.h#include stdlib.h #include time.h計時#define ERROR 0#define OK 1#define OVERFLOW -2#define MAXSIZE 100000 用戶自己規(guī)定排序的數(shù)字的長度typedef int Status;typedef structint*r; / r0閑置intlength; 順序表的總長度Sqlist;構造一個空線性表Status InitSqlist(Sqlist &L)L.r=(int *)malloc(MAXSIZE*sizeof(int);分配存儲空間if(!L.r)printf(存儲

6、分配失?。。?exit(0); 存儲分配失敗L.length=0;/初始長度為 0 return OK;輸入隨機數(shù)并顯示在界面上Status ScanfSqlist(int &N,Sqlist &L) int i;printf(請輸入要排序的元素個數(shù)N:); scanf(%d,&N);for(i=1;i=N;i+)L.ri=rand(); 隨機產(chǎn)生樣本整數(shù)printf(nn);printf(隨機產(chǎn)生了 %d個隨機數(shù),它們是:n,N);for(i=1;i=N;i+)printf(%7.2d ,L.ri); printf(nH);L.length=N; /存儲線性表的長度 return OK;輸出

7、排序之后的數(shù)據(jù)int i;printf(數(shù)據(jù)個數(shù):);/輸出數(shù)據(jù)個數(shù)printf(H%dn,L.length);printf(排序后的數(shù)據(jù):(從左向右依次增大)n);/輸出數(shù)據(jù)for(i=1;i=N;i+)printf(%7.2d ,L.ri);printf(nH);return OK;/fde ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale

8、de ale de ale de ale de ale de ale de ale de ale de ale de ale de *直接插入排序,業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè) *Status InsertSort(Sqlist &L)參考書 P265 算法 10.1int ij;if(L.length=0)printf(要排序的數(shù)據(jù)為空!);return ERROR;if(L.riL.ri-1) /將 L.r插入有序子表L.r0=L.ri; 復制為監(jiān)視哨Lri=Lri-1;fOr(j=i-2;L

9、.r0L.rj;j-)L.rj+1=L.rj; 記錄后移Lrj+1=Lr0; 插入到正確位置return OK;/fde ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de /*/折半插入排序,業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)

10、業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè) /*Status BInsertSort(Sqlist &L)參考書 P267 算法 10.2int ij,midjowhigh;if(L.length=0)printf(要排序的數(shù)據(jù)為空!);return ERROR;L.r0=L.ri; /將 L.ri暫存在 L.r0 low=1;high=i-1;while(low=high) /在rlow.high忡折半查找有序插入的位置 mid=(low+high)/2;if(L.r0=high+1;j-) 插入點后的數(shù)據(jù)后移 L.rj+1=L.r

11、j;L.rhigh+1=L.r0;將數(shù)據(jù)插入/for return OK; y業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè) /* *希爾排序ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale al

12、e ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale ale*/參考書P272算法10.4及10.5/*Status ShellInsert(Sqlist &L,int dk)/希爾插入排序dkint ij;/前后位置的增量是for(i=dk+1;i=L.length;i+)r0只是暫存單元,不是哨兵,if(L.ri0 & L.r0L.rj;j-=dk) L.rj+dk=L.rj;入

13、位置L.rj+dk=L.r0;記錄后移,查找插/插入return OK;Status ShellSort(Sqlist &L,int dlta5,int t)/希爾排序int i;if(L.length=0)printf(要排序的數(shù)據(jù)為空!);return ERROR;for(i=0;it;i+)ShellInsert(L,dltai);return OK;*/一趟增量為dltak的插入排序,業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)/*/起泡排序業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)

14、業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè) /Status BubbleSort(Sqlist &L)int ij,t;if(L.length=0)printf(要排序的數(shù)據(jù)為空!);return ERROR;for(j=1;jL.rj+1)/前面的數(shù)據(jù)后面數(shù)據(jù)時t=L.rj+1;L.rj+1=L.rj;L.rj=t; 將元素交換return OK;/fde ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de ale de

15、 ale de ale de ale de ale de ale de ale de ale de ale de ale de ale *快速排序,業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)*int Partition(Sqlist &L, int low, int high) /交換順序表中子表 L.rlow.high 的記錄,使得樞 軸記錄到位,并返回其所在位置,此時在它之前(后)的記錄均不大于它 int pivotkey; 記錄關鍵字L.r0=L.rlow; 用子表的第一個紀錄作樞軸紀錄pivotkey=L.rlow; 用樞軸

16、紀錄關鍵字 while (lowhigh)while(low=pivotkey)high-;L.rlow= L.rhigh; 將比樞軸記錄小的記錄移到低端while(lowhigh & L.rlow=pivotkey)low+;L.rhigh=L.rlow; 將比樞軸記錄大的數(shù)移到高端L.rlow=L.r0; 樞軸記錄到位return low;/Partition 函數(shù)void Qsort (Sqlist &L,int low, int high)int pivotloc;if (lowhigh) 長度大于1,可以進行pivotloc=Partition(L, low ,high);Qsort

17、(L,low,pivotloc-1);對低子表遞歸排序,pivotloc是樞軸位置Qsort(L,pivotloc+1,high); 對高子表遞歸排序/Qsort 函數(shù)Status QuickSort (Sqlist &L)printf(要排序的數(shù)據(jù)為空!);return ERROR;Qsort(L,1,Llength);return OK;/QuickSort,夕業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)*選擇排序業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè) *Status ChooseSort

18、(Sqlist &L)int ij,k,t;if(L.length=0)printf(沒有數(shù)據(jù)!);return ERROR;for(i=1;i=L.length;i+) /排序的趟數(shù)k=i;for(j=i+1;j=L.length;j+) 比較第i個元素以及其后的數(shù)據(jù)中最小的if(L.rjL.rk)k=j;if(i!=j) /將最小數(shù)據(jù)賦值給L.ri t=L.ri;L.ri=L.rk;L.rk=t;return OK;業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)/*堆排序,業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)/*

19、Status HeapAdjust(Sqlist &L,int s,int m) 調整 L.rs的關鍵字,使 L.rsm成大頂堆int i;Lr0=Lrs;for(i=2*s;i+1=m;i*=2) 沿數(shù)據(jù)較大的孩子結點向下篩選if(im & L.ri=L.ri) /L.r0插入在 S 位置上 break;Lrs=Lri;s=i;L.rs=L.r0; /插入新數(shù)據(jù)return OK;Status HeapSort(Sqlist &L) 堆排序int i,t;if(L.length=0)printf(沒有數(shù)據(jù)!);return ERROR;for(i=L.length/2;i0;i-)HeapA

20、djust(L,i,Llength);for(i=L.length;i1;i-)t=L.r1; 將堆頂記錄和當前未經(jīng)排序的子序列L.r1.i中最后一個記錄互換L.r1=L.ri;L.ri=t;HeapAdjust(L,1,i-1); 將 L.r1.i-1 重新調整為大頂堆return OK;業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)*基數(shù)排序業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè) 亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍

21、亍亍typedef struct node( int key;node *next;RecType;Status RadixSort(Sqlist L)int t4j,k,d,n=1,m;RecType *p,*s,*q,*head10,*tail10; 定義各鏈隊的首尾指針for(i=1;ikey=L.ri;if(i=1) 當為第一個元素時q=s;p=s;t+;elseq-next=s; 將鏈表連接起來q=s;t+;q-next=NULL;d=1;while(n0)將每個元素分配至各個鏈隊for(j=0;jkey/d;k=k%10;if(headk=NULL) 進行分配headk=p;tai

22、lk=p;elsetailk-next=p;tailk=p;p=p-next; /取下一個待排序的元素p=NULL; /用于收集第一個元素時的判斷 for(j=0;jnext=headj;q=tailj;q-next=NULL; 最后一個結點的next置為空d=d*10;n=0;m=1;while(mkey;i+;p=p-next;return OK;業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè) 亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍亍主函數(shù),業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)*voi

23、d main()Sqlist L;Sqlist L0;InitSqlist(L); /初始化 LInitSqlist(L0);int m,i;char choice=z;clock_t start, finish; /定 義 clock_t 用于計時 double duration;霎 Yshkfe偵 =)supd f(=5 墓 Y著二 =)supdx=f.mupdmMrdf(a=)Jwdf(m=)updfr目 =)upd ?)Jwd,6=fcmft常職壑Tr=)upd 震置=)supd r5 重 Yghkfe偵 =)掃upd f(mftYKffiw二 二)JWJdf(=?)Jwd sTa昌b

24、sjiwos fr3帳埼田殿 8 f(m重警 K =)upd fr目重,9 =)supd f(mtt:董般In=)掃upd fr定常瑕塾 4tzJWIdprintf(5、選擇排 序n);printf(6、堆排 序n);printf(7、基數(shù)排 序n);printf(8、退出該系統(tǒng)nn);printf(n請選擇排序的方式,數(shù)字1-7:);scanf(%d,&choice); 選擇排序方式賦值choice,用于后面的函數(shù)選擇while(choice8)printf(輸入方式有誤。n請輸入1-7選擇排序方式,或者選擇8退出系統(tǒng));scanf(%d,&choice);while(choice!=8)f

25、or(i=1;i=L0.length;i+)L.ri=L0.ri;L.length=L0.length;switch(choice)case 1:/直接插入排序start = clock();InsertSort(L);finish = clock();break;case 2:/折半插入排序start = clock();BlnsertSort(L); finish = clock(); break;case 3:/起泡排序start = clock(); BubbleSort(L); finish = clock(); break;case 4:快速排序start = clock(); Q

26、uickSort(L); finish = clock(); break;case 5:選擇排序start = clock(); ChooseSort(L); finish = clock(); break;case 6:/堆排序start = clock(); HeapSort(L); finish = clock(); break;case 7:/基數(shù)排序start = clock(); RadixSort(L); finish = clock(); break;case 8:/直接退出break;PrintfSqlist(m,L); /輸出數(shù)據(jù)和L的長度duration = (doubl

27、e)(finish - start) / CLOCKS_PER_SEC;/輸出算術時間printf(n本次排序運算所用的時間是:%lf secondsn,duration);printf(本次排序結束。n);printf(n);printf(繼續(xù)本系統(tǒng)嗎? nn);printf(以下是各個排序算法的代號:n);printf(1、直接插入排序n);printf(2、折半插入排序n);printf(3、起泡排序皿”);printf(4、快速排序寸);printf(5、選擇排序皿”);printf(6、堆排序皿”);printf(7、基數(shù)排序寸);printf( 8、退出該系統(tǒng)皿”);printf(

28、n請請輸入1-7選擇排序方式,或者選擇8退出系統(tǒng):);scanf(%d,&choice);while(choice8)printf(輸入方式有誤。n請輸入1-7選擇排序方式,或者選擇8退出系統(tǒng));scanf(%d,&choice);五、運行結果1、首先選擇需要排序的數(shù)字個數(shù),比如輸入5000。算法排序比較系統(tǒng)序序lF.LF,. 亡冗 速擇囊出 直霜快選堆基退 偵2.3.4.5.6.L8.請輸入要排序的元素個數(shù)N: 5000,2、系統(tǒng)顯示出隨機產(chǎn)生的隨機數(shù)。用戶選擇排序方式,比如選擇1直接插入排序i-7:cr.lrlr.直霰快選堆基退1.2.3.4.5.6.7.8.-f.lf.n,芒A-X序序序 -13.-13._ - _ - _. - - _.-9107 31098 4583 13877 7285 27626 4493 2

溫馨提示

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

評論

0/150

提交評論