實驗報告一快速排序并行實現(xiàn)_第1頁
實驗報告一快速排序并行實現(xiàn)_第2頁
實驗報告一快速排序并行實現(xiàn)_第3頁
實驗報告一快速排序并行實現(xiàn)_第4頁
實驗報告一快速排序并行實現(xiàn)_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗目的:通過實現(xiàn)某種排序算法的并行化熟悉openMP的編程原理和基本編寫技巧和步驟,并能 了解并行算法較串行算法的優(yōu)越性!實驗內(nèi)容:設計一個排序算法,并將其改成并行算法,觀察串行與并行的性能差別實驗步驟:四.3.4.1、快速排序(Quick Sort)是一種最基本的排序算法,它的基本思想是:在當前 無序區(qū)R1,n中取一個記錄作為比較的“基準”(一般取第一個、最后一個或中間位 置的元素),用此基準將當前的無序區(qū)R1,n劃分成左右兩個無序的子區(qū)R1,i-1 和Ri,n(1WiWn),且左邊的無序子區(qū)中記錄的所有關(guān)鍵字均小于等于基準的關(guān)鍵 字,右邊的無序子區(qū)中記錄的所有關(guān)鍵字均大于等于基準的關(guān)鍵字

2、;當R1,i-1和Ri, n非空時,分別對它們重復上述的劃分過程,直到所有的無序子區(qū)中的記錄均排好序為 止。3.4.2、串行快速排序算法輸入:無序數(shù)組data1,n輸出:有序數(shù)組data1,nBegincall procedure quicksort(data,1,n)Endprocedure quicksort(data,i,j)Begin(1) if (ij) thenr = partition(data,i,j)quicksort(data,i,r-1);quicksort(data,r+1,j);end ifEndprocedure partition(data,k,l)Beginpi

3、vo=data/i=k-1for j=k to /-1 doif datajWpivo theni=i+1exchange datai and datajend ifend forexchange datai+1 and data/return i+1End3.4.3、快速排序算法的性能主要決定于輸入數(shù)組的劃分是否均衡,而這與基準元素選 擇密切相關(guān)。在最壞的情況下,劃分的結(jié)果是一邊有n-1個元素,而另一邊有0個素(除 去被選中的基準元素)。如果每次遞歸排序中的劃分都產(chǎn)生這種極度的不平衡,么整個 算法的復雜度將是 (n2)。在最好的情況下,每次劃分都使得輸入數(shù)組平均分為兩半, 那么算法的復雜度為

4、O(nlogn)。在一般的情況下該算法仍能保持O(nlogn)的復雜度, 只不過其具有更高的常數(shù)因子。3.4.4、快速排序算法并行化的一個簡單思想是,對每次劃分過后所得到的兩個序列分 別使用兩個線程完成遞歸排序。例如對一個長為n的序列,首先劃分得到兩個長為n/2 的序列,將其交給兩個線程分別處理;而后進一步劃分得到四個長為n/4的序列,再分 別交給四個線程處理;如此遞歸下去最終得到排序好的序列。當然這里舉的是理想的劃 分情況,如果劃分步驟不能達到平均分配的目的,那么排序的效率會相對較差。快速排序并行算法:輸入:無序數(shù)組Data1,n輸出:有序數(shù)組Data1,nBeginQuickSort_pa

5、rallel(Data,0,N-1);EndProcedure para_quicksort(Data,0,N-1)Beginif(BeginEnd)r=Partition(Data,Begin,End);#pragma omp parallel#pragma omp sections /nowait#pragma omp sectionQuickSort_parallel(Data,Begin,r);#pragma omp sectionQuickSort_parallel(Data,r+1,End);End源代碼:/ omp_section.cpp :定義控制臺應用程序的入口點。/#inc

6、lude#include#include#includeint Partition(int *data,int start,int end)int pivo;int i, j;int tmp;pivo=dataend;i=start-1;/*i(活動指針)*/for(j=start;jend;j+)if(dataj=pivo)i+;/*i表示比pivo小的元素的個數(shù)*/tmp=datai;datai=dataj;dataj=tmp;tmp=datai+1;datai+1=dataend;dataend=tmp;/* 以 pivo 為分界,datai+1=pivo*/return i;int*

7、QuickSort_parallel(int* Data,int Begin,int End)int r;if(BeginEnd)r=Partition(Data,Begin,End);#pragma omp parallel#pragma omp sections nowait#pragma omp sectionQuickSort_parallel(Data,Begin,r);#pragma omp sectionQuickSort_parallel(Data,r+1,End);return Data;void main()int N;printf(輸入個數(shù):);scanf_s(%d,&N

8、);/for(int i=0;iN;i+)/ coutrand()endl;int *Data;Data=new intN;for(int i=0;iN;i+)Datai=rand();/for(int i=0;iN;i+)/coutDataiendl;clock_t timeBegin =clock();Data=QuickSort_parallel(Data,0,N-1);clock_t timeFinish =clock();for (int i=0;i7711115381184015006151411742117673199121995423811240S42E500269623033

9、331101毫初7781842186949665436544787238942?046119421231612382153501572415B901846718?lfc18756206372153821726243702439324464274462752927644313223239132439268229955E375705974198941262312859ieil8165411?2642219022648246262554728145282533266232757IxplS9LBemiGCC9i3CECC&SiCCJ-6SiSC1 1. 1 一 If-_J_J r- 1 1- 9SiE

10、C-11 犬 4 -.9馳叫6P6GEEPdESiPtLEESki EEEPdEESEiEE8站E乙EEEEiEE6E6EE9S6EE泓匏SEiEE5S63EEEdEt6EiEEiE6T6CES心E3 l6Kt心E6此誑匕 WAGE6M6Ly6GKw瑚tUiiltKUdStgWESWiKtUdiiJt6砧誑,的色fr69Z0E69EEZ63ZZE69EET693E68S3E&89EE8893E989EE589EE功9祖E89EE189EE明9花砧9EE8i?EEBi9EE島9花iiSEEWEEEE9EEEi9EE化能Ti9EE0d93E899EE899EEi993E999EEE99EEE99Z

11、0E99EET9炫6S9EEiS93EiSSEE9S9EE959花SSSEES9EEES9Z0ES9EETS9EETS9EE0S93E8PSEEiP9EE聽9EEEfr9EE沖ETfr9EETt9KR心覽9E9成9眄源牌斯海器黑成心9黑AK9KR8明州iE9Z球9?嘩9源TZ9ZFO793F8T9ZF9T97FET9EETT9Ef9T9ZEBT9ZE09ZCiB9Ef9693F909Eft-B9EP6海iSSEE6SZE6SZE6SZEZ6SZET6SZE66S3E88SZE98SZE98GZEfrSGECT8S3CT8G3CT8G3CfiiSEC砧65如OiSHCOGSD69GECS9SEC

12、E953CiSSGCiSSSCgSSEC9SSECSSS3CSS5ECVSSECPSSEC9PSEE卬SEEPPSEEPPSEETPSEETPSEE8ESSEiLESEE&ESEESESEE5&5CEfrE5CEE5SEE&55ESE5Ct9E5CE8E55E8C5Ct3C5CE5C5EEhSiCt5CSCE;kcsatfrSSSttC5t5C5tkESSt8頃t:&5玨5花PKSEE*10H巧花yU5Kt5W5Ct酒與如5W5KttU5Ct處J*CM5ttT0SEET0SKE66AZE86fr3E8做SfitEEE6frEE洲昭燃8明EEiBfrEEiLSfrEeset EEESfrSE海鬣

13、?;?8P3E岫E08PSE6ifrEE昵醞昵A ZEfrdfrSETitEEUkEE砧玖E89風9燃珀卜祖|OKapuiJ EeiU3jsAs SMDON1M : 。axa puziEEUiai5A5sMOaNM:3 心心源K997R1砰黃TAFKFf/.9TRKKRTRSTTTRWITW訴9fRfiRg征9unnf眼9奇島/.阻RfiARZStTfiKRRA/.K3脫心原驪弓臨泗詞gHtPAZ酒皿財如gAHR9Ki?9S0W豚聽A琢A9/.frKRt9frK脫門玖tstfrrAE玖H/TbKRSPtK做琢Hmm9SARZ1邙薛傾R商q取薜THKRK心牌6跖F.TR7.7:UM源RSfrKK

14、9RFKK柄EI:隊g.mbKATKRtTK/.ERflZ玷砧TEARATBTAAT瞻961奇 JAT珀Wfi9T/iT沙砌1K9/.STg.HT9T/.R1門9機BSRT加睥F.ET加豚1屈時T牝9汀TEfrdTBTfriTSE0il砰頌W&9饋卯TtS3TETS9TET網(wǎng)T8TT9T068STfrSiSTfriSSTEiSST頌SI0SESTTtTST900STSA命TE68frTTAW珀9ATBTEHMET996EIIE6EI36ZET0E0ET6S8ETEE9ETE8E3T9KEET68ZZ1ES0ETCfrSTT0frBTT8ESTT8WTtEETTEEETT0E0TTEBE0TT6

15、E01T966班66*6868泌機6frTS6心6T9T6機6滯靛6S6SE化8TBEBTTM9瑟&036989896必iT99E明9花可6汩玨E90iW9徹S湖SiESSgs9泗已603TE0S996。泗口&臥玨濟卜眄6E9fr9皿K伽TEBfr部8心8配E孫E8frSEgSE0ES66EK瞬90EEZS0Z666T698TEfrSTSS9T0S1T066時乙T6fr涕Z6Z383ESIESTfrBHa-pui3EEiU0;sA5soaNIAA:3 -hii32731327313273232732327323273232732327323273232732327333273332733327

16、33327333273332733327340273432704227243272422725227252272522725魏?拓227252272522735羽?3W%?花g*軟?拓g打猥刀1?%?叫3273732737327373273732738327383273832738327393273932739327403 2?鄰32740327403274132741327413274132741327413274132742327423274232742327423274232742327423274332743327433274332743327433274332743327443274

17、432744J27443274J274327443274437443274bJ27453274532745327453275327453274632746327463274632746327463274GJ274G327dG3274G32773274732747327473274732747327473274732747327473274S327483274S327483274S32749羽沖羽?49327492749軟?W軟欠國猥亦m眼K132751327513275132751327E132751327513275232752327533275332754327543275432754327543275432755327563275632756327563275632756327E732757327573275732757327573275732757327583275832758327583275832758327583275932/5?

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論