



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第圖解Java經(jīng)典算法歸并排序的原理與實(shí)現(xiàn)目錄歸并排序算法原理動圖演示代碼實(shí)現(xiàn)復(fù)雜度
歸并排序
歸并排序主要分成兩部分實(shí)現(xiàn),分、合兩部分,分是把數(shù)組分成兩半,再遞歸的對子數(shù)組進(jìn)行分操作,直到分成一個(gè)個(gè)單獨(dú)的數(shù)。合是把兩個(gè)數(shù)組合并為有序數(shù)組,在對有序數(shù)組進(jìn)行合并,直到全部子數(shù)組合并為一個(gè)完整的數(shù)組。
算法原理
申請空間,使其大小為兩個(gè)已經(jīng)排序序列之和,該空間用來存放合并后的序列設(shè)定兩個(gè)指針,最初位置分別為兩個(gè)已經(jīng)排序序列的起始位置比較兩個(gè)指針?biāo)赶虻脑?,選擇相對小的元素放入到合并空間,并移動指針到下一位置重復(fù)步驟c直到某一指針超出序列尾將另一序列剩下的所有元素直接復(fù)制到合并序列尾
動圖演示
代碼實(shí)現(xiàn)
publicclassMergeSort{
//歸并所需的輔助數(shù)組
privatestaticComparable[]assist;
//比較v是否小于w
publicstaticbooleanless(Comparablev,Comparablew){
returnpareTo(w)
//數(shù)組元素交換位置
privatestaticvoidswap(Comparable[]a,inti,intj){
Comparabletemp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
//排序
publicstaticvoidsort(Comparable[]a){
//初始化輔助數(shù)組
assist=newComparable[a.length];
intl=0;
inth=a.length-1;
sort(a,l,h);
privatestaticvoidsort(Comparable[]a,intl,inth){
if(h=l){
return;
//分組
intmid=l+(h-l)/2;
//分別對每組數(shù)據(jù)排序
sort(a,l,mid);
sort(a,mid+1,h);
//對數(shù)組進(jìn)行歸并
merge(a,l,mid,h);
//對數(shù)組進(jìn)行歸并
privatestaticvoidmerge(Comparable[]a,intl,intmid,inth){
//定義三個(gè)指針
inti=l;
intp1=l;
intp2=mid+1;
//遍歷,移動p1,p2指針,比較兩處索引的值,小的放到輔助數(shù)組的對應(yīng)索引處
while(p1=midp2=h){
if(less(a[p1],a[p2])){
assist[i++]=a[p1++];
}else{
assist[i++]=a[p2++];
//遍歷數(shù)組,如果p1的指針沒有走完,則順序移動p1指針,把對應(yīng)的元素放到輔助數(shù)組的對應(yīng)索引處
while(p1=mid){
assist[i++]=a[p1++];
//遍歷數(shù)組,如果p2的指針沒有走完,則順序移動p2指針,把對應(yīng)的元素放到輔助數(shù)組的對應(yīng)索引處
while(p2=h){
assist[i++]=a[p2++];
//把輔助數(shù)組中的元素拷貝到原數(shù)組中
for(intj=l;jj++){
a[j]=assist[j];
}
publicclassMergeSortTest{
publicstaticvoidmain(String[]args){
Integer[]arr={5,6,3,1,8,7,2,4};
MergeSort.sort(arr);
System.out.println(Arrays.toString
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政管理的標(biāo)準(zhǔn)化發(fā)展試題及答案
- 藥學(xué)知識2025年試題及答案
- 行政管理2025年合規(guī)性試題及答案分析
- 經(jīng)濟(jì)法概論中的重要案例及試題
- 生鮮經(jīng)理培訓(xùn)課件
- 中華文明與世界文化試題及答案
- 執(zhí)業(yè)藥師復(fù)習(xí)方案與試題及答案
- 課件中的旋轉(zhuǎn)變換原理與實(shí)例分析
- 民族文化課件評價(jià)語
- 自考行政管理下一步行動題及答案
- 產(chǎn)品質(zhì)量管控與2023年質(zhì)檢合格率報(bào)告
- 庭院造園行業(yè)分析
- 口腔醫(yī)學(xué)技術(shù):牙齒熔模的制作
- 保險(xiǎn)理賠賠償協(xié)議書
- 公交司機(jī)禮儀服務(wù)培訓(xùn)課件
- 鋼筆的正確使用方法課件
- 空調(diào)冷熱(冷卻)水系統(tǒng)安裝(金屬管道)檢驗(yàn)批質(zhì)量驗(yàn)收記錄(新表)
- 2024年國家人民衛(wèi)生出版社有限公司招聘筆試參考題庫含答案解析
- 家庭與生活環(huán)境職業(yè)生涯規(guī)劃
- 居家養(yǎng)老上門服務(wù)投標(biāo)方案(技術(shù)方案)
評論
0/150
提交評論