




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
算法設(shè)計與分析作業(yè)
作業(yè)一:給一個數(shù)組,用冒泡排序、選擇排序、合并排序與快速排序四種方法
實現(xiàn)過程且比較,并把排序時間顯示出來。
冒泡排序:
原理:
將待排序的元素看作是豎著排列的“氣泡”,較小的元素比較輕,從而要往上
浮。在冒泡排序算法中我們要對這個“氣泡”序列處理若干遍。所謂一遍處理,就
是自底向上檢查一遍這個序列,并時刻注意兩個相鄰的元素的順序是否正確。如
果發(fā)現(xiàn)兩個相鄰元素的順序不對,即“輕”的元素在下面,就交換它們的位置。
代碼:
packagemaopao;
publicclassmaopao(
publicvoidpaixu(){
intarray[]={1,3,-2,0,8,7,-1,13,63,-20,120};
longstart=System.wori/ne();〃開始時間
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é)束時間
System,out.printIn("所花費的時間為:"+(end-start)+"納秒”);〃運行時間
)
publicstaticvoidmain(String[]args){
maopaom=newmaopao();
m.paixu();
)
}
運行結(jié)果:
:Problems@Javadoc圖聲明日控制臺漢
止〉maopao[Java,主用是國C:\ProgramFiles\Java\jrel.8.060\bin\javaw.
120
63
13
8
7
3
1
0
-1
-2
-20
斫花費的時冏為:714420比個
選擇排序:
原理:
對待排序的記錄序列進行n-1遍的處理,第i遍處理是將L[i..n]中最小者與
L[i]交換位置。這樣,經(jīng)過i遍處理之后,前i個記錄的位置已經(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("所花費的時間為:”+(end-start)+"納秒");
)
)
運行結(jié)果:
VMM1ILA.___nrJ/\.
4
Problems@Javadoc艮聲明且控制臺區(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
年花費約廿旬為:873530比號
合并排序:
原理:
是指將若干個已排序的子文件合并成一個有序的文件。
代碼:
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("所花費的時間為:”+(end-start)+"納秒");
)
}
■Problems@Javadoc”Y后控制臺漢涉SB試
hebing[JavaC:\ProgramFiles\Java\jrel.8Q_60\binyavaw.exe(
[-20,-2,-1,0,1,3,7,8,13,63,120]
廂花曼的什何有:540543楞0
快速排序:
原理:
通過一趟掃描后,使得排序序列的長度能大幅度地減少。
代碼:
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("所花費的時間為:”+(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024廣東廣州市弘盈置業(yè)有限公司招聘1人筆試參考題庫附帶答案詳解
- 2025年八氟戊醇項目合作計劃書
- 粵教版高中信息技術(shù)選修3教學(xué)設(shè)計-2.3.1 域名與域名系統(tǒng)
- 2025年湖北水利水電職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及參考答案
- 第二單元《探秘物聯(lián)網(wǎng)》第7課 傳感器的應(yīng)用 教學(xué)設(shè)計 2023-2024學(xué)年浙教版(2023)初中信息技術(shù)七年級下冊
- 2025年廣西經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫含答案
- 2025年湖北城市建設(shè)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫完整
- 第二單元第10課《物聯(lián)系統(tǒng)原型搭建》-教學(xué)設(shè)計 2023-2024學(xué)年浙教版(2023)初中信息技術(shù)七年級下冊
- 2025年合肥信息技術(shù)職業(yè)學(xué)院單招職業(yè)技能測試題庫必考題
- 2024年12月湖北十堰市丹江口市第二次事業(yè)單位公開招聘71人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 新生兒沐浴評分標(biāo)準(zhǔn)
- 潛水作業(yè)指導(dǎo)書
- (完整版)設(shè)計管理
- 感謝對手閱讀附答案
- 材料性能學(xué)(第2版)付華課件0-緒論-材料性能學(xué)
- GB/T 8012-2000鑄造錫鉛焊料
- 第一課 第一章 AutoCAD 2012概述入門
- 2023年湖南省普通高中學(xué)業(yè)水平考試數(shù)學(xué)版含答案
- 超市店長考核方案(實例)
- 德力西質(zhì)量獎自評報告組織概述
- 任務(wù)八-汽車四輪定位的檢測分析課件
評論
0/150
提交評論