電子科技大學軟件技術基礎實驗報告5_第1頁
電子科技大學軟件技術基礎實驗報告5_第2頁
電子科技大學軟件技術基礎實驗報告5_第3頁
電子科技大學軟件技術基礎實驗報告5_第4頁
電子科技大學軟件技術基礎實驗報告5_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、電子科技大學 通信與信息工程 學院標 準 實 驗 報 告(實驗)課程名稱 軟件技術基礎實驗 電子科技大學教務處制表電 子 科 技 大 學實 驗 報 告一、實驗室名稱:校公共機房 二、實驗項目名稱:查找與排序三、實驗學時:4學時四、實驗原理:使用VS2010等C語言集成開發(fā)環(huán)境(IDE),在微型計算機上對程序進行編輯、編譯、連接與運行。通過上機練習掌握順序查找、二分查找函數(shù)、簡單選擇法、直接插入法、冒泡法排序、快速排序等方法、過程和實際應用。五、實驗目的:1. 熟練掌握順序查找、二分查找函數(shù)、簡單選擇法、直接插入法、冒泡法排序、快速排序等算法方法并實現(xiàn)。2. 掌握課程平臺使用方法。六、實驗內容:

2、ex5_1:查找 設有序序列的數(shù)據(jù)元素為:(3,10,13,17,40,43,50,70)1)編寫順序查找函數(shù)2)編寫二分查找函數(shù)3)在主程序中輸入關鍵字(43和5),分別調用兩種查找函數(shù),輸出結果。/第一題#include <stdio.h>#define maxnum 20typedef struct int datamaxnum; int length;list_type;void create(list_type *l) l->length=8; l->data0=3; l->data1=10; l->data2=13; l->data3=17

3、; l->data4=40; l->data5=43; l->data6=50; l->data7=70;void shunxucz(list_type *l,int a1,int a2) int i,flag=0; printf("-n"); printf("順序查找法:n"); for(i=0;i<l->length;i+) if(a1=l->datai) printf("%d是第%d個元素n",a1,(i+1);flag=flag+1; if(flag=0) printf("表

4、中沒有大小為%d的元素n",a1); flag=0; for(i=0;i<l->length;i+) if(a2=l->datai) printf("%d是第%d個元素n",a2,(i+1);flag=flag+1; if(flag=0) printf("表中沒有大小為%d的元素n",a2);void erfencz(list_type *l,int a1,int a2) printf("-n"); printf("二分查找法:n"); int low,h,m,flag=0,i; low

5、=0; h=l->length-1; for(i=0;i<l->length;i+) m=(low+h)/2; /如果有小數(shù)就向小的數(shù)字取值9/2=4 if(l->datam=a1) printf("%d是第%d個元素n",a1,(m+1);flag=1;break; else if(l->datam<22) low=m+1; else if(l->datam>22) h=m-1; if(flag!=1) printf("表中沒有大小為%d的元素n",a1); flag=0; low=0; h=l->

6、length-1; for(i=0;i<l->length;i+) m=(low+h)/2; /如果有小數(shù)就向小的數(shù)字取值9/2=4 if(l->datam=a2) printf("%d是第%d個元素n",a2,(m+1);flag=1;break; else if(l->datam<22) low=m+1; else if(l->datam>22) h=m-1; if(flag!=1) printf("表中沒有大小為%d的元素n",a2);int main() int flag1=43,flag2=5; lis

7、t_type list,list1,list2; create(&list);create(&list1);create(&list2); shunxucz(&list1,flag1,flag2); erfencz(&list1,flag1,flag2); printf("-n");ex5_2:排序1)編寫簡單選擇法函數(shù)2)編寫直接插入法函數(shù)3)編寫冒泡法排序函數(shù)4)編寫快速排序函數(shù)5)在主程序中輸入一組數(shù)據(jù)元素(513,87,512,61,908,170,897,275,653,462),分別調用4種排序函數(shù),輸出每趟排序結果。/第

8、二題#include <stdio.h>#define maxnum 20typedef struct int datamaxnum; int length;list_type;void create(list_type *l) l->length=10; l->data0=513; l->data1=87; l->data2=512; l->data3=61; l->data4=908; l->data5=170; l->data6=897; l->data7=275; l->data8=653; l->data9

9、=462;void charupx(list_type *l) printf("-n"); printf("插入排序法:n"); printf("分步過程:n"); int i,j,k; int temp; for ( i=1; i<l->length; i+) temp=l->datai; j=i-1; while (j>=0)&& (temp<l->dataj) l->dataj+1=l->dataj; j=j-1; l->dataj+1=temp; if(i=

10、9) printf("最終結果:n"); for(k=0;k<l->length;k+) printf(" %d ",l->datak); printf("n"); void maopaopx(list_type *l) int temp; int i,j,k; printf("-n"); printf("冒泡排序法:n"); printf("分步過程:n"); for(i=0;i<l->length;i+) for(j=i+1;j<l-&

11、gt;length;j+) if(l->datai>l->dataj) temp=l->datai;l->datai=l->dataj;l->dataj=temp; if(i=9) printf("最終結果:n"); for(k=0;k<l->length;k+) printf(" %d ",l->datak); printf("n"); void xuanzepx(list_type *l) int temp,i,j,k; printf("-n"); p

12、rintf("選擇排序法:n"); printf("分步過程:n"); for(i=0;i<l->length;i+) for(j=i;j<l->length;j+) if(l->dataj<l->datai) temp=l->dataj; l->dataj=l->datai; l->datai=temp; if(i=9) printf("最終結果:n"); for(k=0;k<l->length;k+) printf(" %d ",l-

13、>datak); printf("n"); void quick_sort( int *a, int low, int high)int i = low, j = high;int temp = a low;if( low >= high) return;while( i != j)while( i < j && a j >= temp)j-;a i = a j;while( i < j && a i <= temp)i+;a j = a i;a i = temp;quick_sort( a, low, i

14、 - 1); quick_sort( a, i + 1, high);for(i=0; i<high+1; i+) printf(" %d ", ai); printf ("n");int main()int i; list_type list,list1,list2,list3; create(&list);create(&list1);create(&list2);create(&list3); xuanzepx(&list2); charupx(&list); maopaopx(&list1);printf("-n"); printf("快速排序法:n&

溫馨提示

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

評論

0/150

提交評論