版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
算法設(shè)計(jì)與分析作業(yè)
作業(yè)一:給一個(gè)數(shù)組,用冒泡排序、選擇排序、合并排序與快速排序四種方法
實(shí)現(xiàn)過(guò)程且比較,并把排序時(shí)間顯示出來(lái)。
冒泡排序:
原理:
將待排序的元素看作是豎著排列的“氣泡”,較小的元素比較輕,從而要往上
浮。在冒泡排序算法中我們要對(duì)這個(gè)“氣泡”序列處理若干遍。所謂一遍處理,就
是自底向上檢查一遍這個(gè)序列,并時(shí)刻注意兩個(gè)相鄰的元素的順序是否正確。如
果發(fā)現(xiàn)兩個(gè)相鄰元素的順序不對(duì),即“輕”的元素在下面,就交換它們的位置。
代碼:
packagemaopao;
publicclassmaopao(
publicvoidpaixu(){
intarray[]={1,3,-2,0,8,7,-1,13,63,-20,120};
longstart=System.wori/ne();〃開(kāi)始時(shí)間
for(inti=0;i<array.length;i++){
for(intj=i+1;j<array.length;j++){
if(array[i]<array[j]){
inttempt=array[i];
array[i]=array[j];
array[j]=tempt;
)
}
)
for(inti=0;i<array.length;i++){
System.out.println(""+array[i]+"");
)
longend=System〃結(jié)束時(shí)間
System,out.printIn("所花費(fèi)的時(shí)間為:"+(end-start)+"納秒”);〃運(yùn)行時(shí)間
)
publicstaticvoidmain(String[]args){
maopaom=newmaopao();
m.paixu();
)
}
運(yùn)行結(jié)果:
:Problems@Javadoc圖聲明日控制臺(tái)漢
止〉maopao[Java,主用是國(guó)C:\ProgramFiles\Java\jrel.8.060\bin\javaw.
120
63
13
8
7
3
1
0
-1
-2
-20
斫花費(fèi)的時(shí)冏為:714420比個(gè)
選擇排序:
原理:
對(duì)待排序的記錄序列進(jìn)行n-1遍的處理,第i遍處理是將L[i..n]中最小者與
L[i]交換位置。這樣,經(jīng)過(guò)i遍處理之后,前i個(gè)記錄的位置已經(jīng)是正確的。
代碼:
packagexuanze;
publicclassxuanze(
publicstaticvoidmain(String[]args){
int[]arr={l,3,-2,0,8,7,-1,13,63,-20,120};
inttemp=0;
intmin=0;
longstart=System.nanoTime();
for(inti=0;i<am.length-l;i++){
min=i;
for(intj=i+l;j<arr.length;j++){
if(arr[min]>arr[j])
min=j;
}
if(min!=i){
temp=arr[min];
arr[min]=arr[i];
arr[i]=temp;
}
}
System.out.println("排序后的數(shù)組為:
for(inti=0;i<arr.length;i++){
System.out.println(arr[i]+"");
)
longend=System.nanoTime();
System.out.printin("所花費(fèi)的時(shí)間為:”+(end-start)+"納秒");
)
)
運(yùn)行結(jié)果:
VMM1ILA.___nrJ/\.
4
Problems@Javadoc艮聲明且控制臺(tái)區(qū),X笈|x/E
xuanze[JavaC:\ProgramFiles\Java\jrel,8.060\bin\javaw.exe(2015^
舞子舌的女公力:
?20
-2
-1
0
1
3
7
8
13
63
120
年花費(fèi)約廿旬為:873530比號(hào)
合并排序:
原理:
是指將若干個(gè)已排序的子文件合并成一個(gè)有序的文件。
代碼:
packagehebing;
importjava.util.Arrays;
publicclasshebing
{
privatestaticvoidmergeSort(int[]array,intstart,intend,int[]
tempArray)
{
if(end<=start)
{
return;
)
intmiddle=(start+end)/2;
mergeSort(array,start,middle,tempArray);
mergeSort(array,middle+1,end,tempArray);
intk=0,leftindex=0,rightindex=end-start;
System.arraycopy(array,start,tempArray,0,middle-start+1);
for(inti=0;i<end-middle;i++)
{
tempArray[end-start-i]=array[middle+i+1];
}
while(k<end-start+1)
{
if(tempArrayfrightlndex]>tempArrayfleftlndex])
{
array[k+start]=tempArray[leftIndex++];
}
else
{
array[k+start]=tempArrayfrightlndex--];
}
k++;
}
)
publicstaticvoidmain(String[]args)
{
int[]array=newint[]{1,3,?2,0,8,7,-1,13,63,-20,120};
longstart=System.nanoH/we();
mergeSort(array,0,array.length-1,newint[array.length]);
System.out.printin(Arrays.toString(array));
longend=System.nanoTime();
System.out.printIn("所花費(fèi)的時(shí)間為:”+(end-start)+"納秒");
)
}
■Problems@Javadoc”Y后控制臺(tái)漢涉SB試
hebing[JavaC:\ProgramFiles\Java\jrel.8Q_60\binyavaw.exe(
[-20,-2,-1,0,1,3,7,8,13,63,120]
廂花曼的什何有:540543楞0
快速排序:
原理:
通過(guò)一趟掃描后,使得排序序列的長(zhǎng)度能大幅度地減少。
代碼:
packagekuaisu;
publicclasskuaisu
{
publicstaticvoidmain(String[]args)
(
quicksortqs=newquicksort();
intdata[]={1,3,-2,0,8,7,-1,13,63,-20,120};
longstart=System.nanoTi/we();
qs.data=data;
qs?sort(0,qs.data.length-1);
qs.display();
longend=System.nanoTime();
System.out.println("所花費(fèi)的時(shí)間為:”+(end-start)+"納秒”);
}
}
classquicksort
{
publicintdata[];
privateintpartition(intsortArray[],intlow,inthight)
(
intkey=sortArray[low];
while(low<hight)
{
while(low<hight&&sortArray[hight]>=key)
hight--;
sortArray[low]=sortArray[hight];
while(low<hight&&sortArray[low]<=key)
low++;
sortArray[hight]=sortArray[low];
}
sortArray[low]=key;
returnlow;
}
publicvoidsort(intlow,inthight)
(
if(low<hight)
{
intresult=partition(data,low,,hight);
sort(low,result-1);
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 自治區(qū)級(jí)公益性崗位招聘考前自測(cè)高頻考點(diǎn)模擬試題及答案詳解參考
- 熱力鍋爐排放達(dá)標(biāo)方案
- 2025中國(guó)傳統(tǒng)文化題庫(kù)及答案
- 安全員A證考試綜合檢測(cè)模擬卷(網(wǎng)校專(zhuān)用)附答案詳解
- 2025年銷(xiāo)售筆試題庫(kù)及答案(可下載)
- 三支一扶試題預(yù)測(cè)試卷及參考答案詳解【能力提升】
- 2025年醫(yī)學(xué)超聲中級(jí)試題及答案
- 湖北2025自考護(hù)理學(xué)社區(qū)護(hù)理學(xué)(一)模擬題及答案
- 安全員A證考試復(fù)習(xí)提分資料及完整答案詳解(考點(diǎn)梳理)
- 安全員A證考試模擬題庫(kù)含完整答案詳解(奪冠)
- 2025年法考客觀(guān)題真題回憶版(含答案)
- 2026年鐵嶺衛(wèi)生職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)附答案詳解
- 操作系統(tǒng)安裝與配置標(biāo)準(zhǔn)
- 精益生產(chǎn)工作規(guī)劃
- 二級(jí)注冊(cè)計(jì)量師2025年全真模擬測(cè)試卷(含答案)
- 2025年廣東中考音樂(lè)題庫(kù)及答案
- 口腔醫(yī)院會(huì)員中心
- 冬季交通安全測(cè)試題及答案解析
- 2025年國(guó)家能源局系統(tǒng)公務(wù)員面試模擬題及備考指南
- 脊柱感染護(hù)理
- 危險(xiǎn)品押運(yùn)證考試題及答案
評(píng)論
0/150
提交評(píng)論