資源描述:
《算法分析與設(shè)計(jì)實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、南華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院實(shí)驗(yàn)報(bào)告南華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院實(shí)驗(yàn)報(bào)告(2010~2011學(xué)年度第2學(xué)期)課程名稱:算法分析與設(shè)計(jì)實(shí)驗(yàn)名稱:冒泡與快速排序算法的時(shí)間性能分析姓名馮金龍學(xué)號(hào)20094350210專業(yè)軟件工程班級(jí)軟件二班地點(diǎn)8—209教師劉立南華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)?zāi)康募耙螅?:衡量算法的時(shí)間復(fù)雜度。2:編寫快速排序與冒泡排序的算法代碼并比較兩個(gè)算法的時(shí)間性能。3:對(duì)同一序列進(jìn)行排序輸出各自的時(shí)間。2.實(shí)驗(yàn)內(nèi)容代碼如下://paixu.cpp:定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。//#include"stdaf
2、x.h"#include"windows.h"#include"iostream"#pragmacomment(lib,"winmm.lib")usingnamespacestd;//起泡排序voidBubbleSort(intr[],intn){inttemp;intexchange;intbound;exchange=n-1;//第一趟起泡排序的范圍是r[0]到r[n-1]while(exchange)//僅當(dāng)上一趟排序有記錄交換才進(jìn)行本趟排序{bound=exchange;exchange=0;for(intj=0;j3、d;j++)//一趟起泡排序if(r[j]>r[j+1]){temp=r[j];r[j]=r[j+1];r[j+1]=temp;exchange=j;//記錄每一次發(fā)生記錄交換的位置}}}南華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院實(shí)驗(yàn)報(bào)告//快速排序一次劃分intPartition(intr[],intfirst,intend){inti=first;//初始化intj=end;inttemp;while(i4、r[j];r[j]=temp;i++;}while(i5、進(jìn)行快速排序QuickSort(r,pivot+1,end);//遞歸地對(duì)右側(cè)子序列進(jìn)行快速排序}南華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院實(shí)驗(yàn)報(bào)告}intmain(void){constintnumv=11;intc[]={38,23,56,2,79,42,93,29,6,5,57};intd[]={38,23,56,2,79,42,93,29,6,5,57};LARGE_INTEGERBegainTime;LARGE_INTEGEREndTime;LARGE_INTEGERFrequency;QueryPerformanceFrequency(
6、&Frequency);dangQueryPerformanceCounter(&BegainTime);QuickSort(d,0,numv-1);//要測(cè)試的代碼放在這里QueryPerformanceCounter(&EndTime);Cout<<”快速排序的時(shí)間如下:”<7、erformanceCounter(&BegainTime);BubbleSort(c,numv);//要測(cè)試的代碼放在這里QueryPerformanceCounter(&EndTime);Cout<<”冒泡排序的時(shí)間如下:”<8、報(bào)告5.實(shí)驗(yàn)總結(jié)分析:實(shí)驗(yàn)分析:在宏觀上冒泡排序的時(shí)間復(fù)雜度為:O(n2),而快速排序的時(shí)間復(fù)雜度為:O(nlog2n),顯然快速排序的時(shí)間復(fù)雜度比冒泡排序的時(shí)間復(fù)雜度要好,但當(dāng)n為一微觀的具體的比較小的數(shù)時(shí),例如當(dāng)n為