數(shù)據(jù)結構排序算法的實現(xiàn)_第1頁
數(shù)據(jù)結構排序算法的實現(xiàn)_第2頁
數(shù)據(jù)結構排序算法的實現(xiàn)_第3頁
數(shù)據(jù)結構排序算法的實現(xiàn)_第4頁
數(shù)據(jù)結構排序算法的實現(xiàn)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

沈陽工程學院學生實驗報告實驗室名稱:信息工程系信息安全實驗室實驗課程名稱:數(shù)據(jù)結構實驗項目名稱:排序算法的實現(xiàn)一?實驗目的掌握:直接插入排序、折半插入排序、冒泡排序、快速排序、簡單選擇排序、歸并排序。理解:希爾排序、堆排序。二實驗環(huán)境VC++6.0.實驗內(nèi)容及要求實驗內(nèi)容:編寫程序,試以單鏈表為存儲結構實現(xiàn)簡單選擇排序的算法。已知序列{503,87,512,61,908,170,897,275,653,462},請給出采用快速排序法對該序列作升序時的每一趟結果。已知序列{503,87,512,61,908,170,897,275,653,462},請給出采用堆排序法對該序列作升序時的每一趟結果。已知一組記錄為(46,74,53,14,26,38,86,65,27,34),給出采用歸并排序法進行排序時每一趟的排序結果。設計一個函數(shù)修改起泡排序過程以實現(xiàn)雙向起泡排序。(選做題)提示:起泡排序是從最下面的記錄開始,對每兩個相鄰的關鍵字進行比較,且使關鍵字較小的記錄換至關鍵字較大的記錄之上,使得經(jīng)過一趟起泡排序之后,關鍵字最小的記錄到達最上端,接著,再在剩下的記錄中找關鍵字較小的記錄,并把它換在第二個位置上。依此類推,一直到所有記錄都有序為止。雙向起泡排序則是每一趟通過每兩個相鄰的關鍵字進行比較,產(chǎn)生最小和最大的元素。實驗步驟及程序清單①編寫程序,試以單鏈表為存儲結構實現(xiàn)簡單選擇排序的算法。#include"stdio.h"#include"malloc.h"#definenull0structList{intdata;structList*next;}List;structList*InitList(){structList*head,*p,*q;intd; printf("創(chuàng)建一個鏈表:\n");head=(structList*)malloc(sizeof(structList));head->next=null;q=head;scanf("%d",&d);while(dv=0){printf(”您所輸入的數(shù)據(jù)有誤,請重新輸入\n");scanf("%d",&d);while(d>0){p=(structList*)malloc(sizeof(structList));p->next=null;p->data=d;q->next=p;q=p;scanf("%d",&d);}returnhead;}voidListChooseSort(structList*head){structList*p,*q;intt;for(p=head->next;p->next;p=p->next)for(q=p_>next;q;q=q_>next)if(p->data>q->data){t=p->data;p->data=q->data;q->data=t;}}voidprint(structList*head){structList*p;if(head){p=head->next;while(p){printf("%5d",p->data);p=p->next;}printf("\n");}voidmain(){structList*head;head=InitList();printf(”您所創(chuàng)建的鏈表為:");print(head);ListChooseSort(head);printf("排序后的鏈表為:”);print(head);}已知序列{503,87,512,61,908,170,897,275,653,462},請給出采用快速排序法對該序列作升序時的每一趟結果。5038751261908170897275653462TOC\o"1-5"\h\z一趟:{87 46261 275 170} 503 {512 653 897 908}二趟:{61} 87{462 275 170} 503 {512 653} 897 {908}三趟:{61} 87{170} 275 {462} 503 {512} {653} 897 {908}有序序列:61 87170275462503512653897908已知序列{503,87,512,61,908,170,897,275,653,462},請給出采用堆排序法對該序列作升序時的每一趟結果。建堆:

897503462170610365390890846261第一趟:第二趟:第三趟:

897503462170610365390890846261第一趟:第二趟:第三趟:46:27587 61170653908170653897 908第四趟:第五趟:第六趟:46:27587 61170653908170653897 908第四趟:第五趟:第六趟:廠、廠、46250317065390861275908462503653第七趟:第八趟:第九趟:有序序列:87 170275462503512653897908廠、廠、46250317065390861275908

溫馨提示

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

評論

0/150

提交評論