并行計(jì)算實(shí)驗(yàn)快速排序的并行算法

并行計(jì)算實(shí)驗(yàn)快速排序的并行算法

ID:22341491

大?。?71.00 KB

頁(yè)數(shù):20頁(yè)

時(shí)間:2018-10-28

并行計(jì)算實(shí)驗(yàn)快速排序的并行算法_第1頁(yè)
并行計(jì)算實(shí)驗(yàn)快速排序的并行算法_第2頁(yè)
并行計(jì)算實(shí)驗(yàn)快速排序的并行算法_第3頁(yè)
并行計(jì)算實(shí)驗(yàn)快速排序的并行算法_第4頁(yè)
并行計(jì)算實(shí)驗(yàn)快速排序的并行算法_第5頁(yè)
資源描述:

《并行計(jì)算實(shí)驗(yàn)快速排序的并行算法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、華南師范大學(xué)實(shí)驗(yàn)報(bào)告學(xué)生姓名學(xué)號(hào)專(zhuān)業(yè)計(jì)算機(jī)科學(xué)與技術(shù)年級(jí)、班級(jí)課程名稱(chēng)并行計(jì)算實(shí)驗(yàn)項(xiàng)目快速排序的并行算法√√√√√√√√√55√√√√實(shí)驗(yàn)類(lèi)型驗(yàn)證設(shè)計(jì)綜合實(shí)驗(yàn)時(shí)間2010年5月10日實(shí)驗(yàn)指導(dǎo)老師實(shí)驗(yàn)評(píng)分3.1實(shí)驗(yàn)?zāi)康呐c要求1、熟悉快速排序的串行算法2、熟悉快速排序的并行算法3、實(shí)現(xiàn)快速排序的并行算法3.2實(shí)驗(yàn)環(huán)境及軟件單臺(tái)或聯(lián)網(wǎng)的多臺(tái)PC機(jī),Linux操作系統(tǒng),MPI系統(tǒng)。3.3實(shí)驗(yàn)內(nèi)容1、快速排序的基本思想2、單處理機(jī)上快速排序算法3、快速排序算法的性能4、快速排序算法并行化5、描述了使用2m個(gè)處理器完成對(duì)n個(gè)輸入數(shù)據(jù)排序的并行算法。6、在最優(yōu)的情況下并行算法形成一個(gè)高度為logn

2、的排序樹(shù)7、完成快速排序的并行實(shí)現(xiàn)的流程圖8、完成快速排序的并行算法的實(shí)現(xiàn)3.4實(shí)驗(yàn)步驟3.4.1、快速排序(QuickSort)是一種最基本的排序算法,它的基本思想是:在當(dāng)前無(wú)序區(qū)R[1,n]中取一個(gè)記錄作為比較的“基準(zhǔn)”(一般取第一個(gè)、最后一個(gè)或中間位置的元素),用此基準(zhǔn)將當(dāng)前的無(wú)序區(qū)R[1,n]劃分成左右兩個(gè)無(wú)序的子區(qū)R[1,i-1]和R[i,n](1≤i≤n),且左邊的無(wú)序子區(qū)中記錄的所有關(guān)鍵字均小于等于基準(zhǔn)的關(guān)鍵字,右邊的無(wú)序子區(qū)中記錄的所有關(guān)鍵字均大于等于基準(zhǔn)的關(guān)鍵字;當(dāng)R[1,i-1]和R[i,n]非空時(shí),分別對(duì)它們重復(fù)上述的劃分過(guò)程,直到所有的無(wú)序子區(qū)中的記錄均排好序

3、為止。3.4.2、單處理機(jī)上快速排序算法輸入:無(wú)序數(shù)組data[1,n]輸出:有序數(shù)組data[1,n]Begincallprocedurequicksort(data,1,n)Endprocedurequicksort(data,i,j)Begin(1)if(i

4、-1doifdata[j]≤pivotheni=i+1exchangedata[i]anddata[j]endifendfor(4)exchangedata[i+1]anddata[l](5)returni+1End3.4.3、快速排序算法的性能主要決定于輸入數(shù)組的劃分是否均衡,而這與基準(zhǔn)元素的選擇密切相關(guān)。在最壞的情況下,劃分的結(jié)果是一邊有n-1個(gè)元素,而另一邊有0個(gè)元素(除去被選中的基準(zhǔn)元素)。如果每次遞歸排序中的劃分都產(chǎn)生這種極度的不平衡,那么整個(gè)算法的復(fù)雜度將是Θ(n2)。在最好的情況下,每次劃分都使得輸入數(shù)組平均分為兩半,那么算法的復(fù)雜度為O(nlogn)。在一般的情況下該

5、算法仍能保持O(nlogn)的復(fù)雜度,只不過(guò)其具有更高的常數(shù)因子。3.4.4、快速排序算法并行化的一個(gè)簡(jiǎn)單思想是,對(duì)每次劃分過(guò)后所得到的兩個(gè)序列分別使用兩個(gè)處理器完成遞歸排序。例如對(duì)一個(gè)長(zhǎng)為n的序列,首先劃分得到兩個(gè)長(zhǎng)為n/2的序列,將其交給兩個(gè)處理器分別處理;而后進(jìn)一步劃分得到四個(gè)長(zhǎng)為n/4的序列,再分別交給四個(gè)處理器處理;如此遞歸下去最終得到排序好的序列。當(dāng)然這里舉的是理想的劃分情況,如果劃分步驟不能達(dá)到平均分配的目的,那么排序的效率會(huì)相對(duì)較差。3.4.5、描述了使用2m個(gè)處理器完成對(duì)n個(gè)輸入數(shù)據(jù)排序的并行算法??焖倥判虿⑿兴惴ㄝ斎耄簾o(wú)序數(shù)組data[1,n],使用的處理器個(gè)數(shù)2

6、m輸出:有序數(shù)組data[1,n]Beginpara_quicksort(data,1,n,m,0)Endprocedurepara_quicksort(data,i,j,m,id)Begin(1)if(j-i)≤korm=0then(1.1)Pidcallquicksort(data,i,j)else(1.2)Pid:r=patrition(data,i,j)(1.3)Pidsenddata[r+1,m-1]toPid+2m-1(1.4)para_quicksort(data,i,r-1,m-1,id)(1.5)para_quicksort(data,r+1,j,m-1,id+2m

7、-1)(1.6)Pid+2m-1senddata[r+1,m-1]backtoPidendifEnd3.4.6、在最優(yōu)的情況下該并行算法形成一個(gè)高度為logn的排序樹(shù),其計(jì)算復(fù)雜度為O(n),通信復(fù)雜度也為O(n)。同串行算法一樣,在最壞情況下其計(jì)算復(fù)雜度降為O(n2)。正常情況下該算法的計(jì)算復(fù)雜度也為O(n),只不過(guò)具有更高的常數(shù)因子。3.4.7、完成快速排序的并行實(shí)現(xiàn)的流程圖3.4.8、完成快速排序的并行算法的實(shí)現(xiàn)#include#

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。