第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

關(guān)于對(duì)歸并排序的理解

图片描述

图片描述

归并排序:至顶向下递归排序(详细请看C++算法课程,这篇手记主要目的是上传这两张图片):引用波波老师的代码://递归使用归并排序,对arr[l.....r]的范围进行排序
template<typename T>
void __mergeSort(T arr[], int l, int r) {

if (l >= r)
return;//当n小到一定程度时,Insertion Sort比Merge Sort快一些(因为前者的时间复杂度带的系数比后者的小)
// if ( r - l <= 15) {//记住这一点:第二个优化
// insertionSort(arr, l, r);
// return;
//}

int mid = (l+r)/2;//当数据量大时有可能发生溢出,毕竟int型;在这里不过多计较
***__mergeSort(arr, l, mid);***
***__mergeSort(arr, mid+1, r);***
if (arr[mid] > arr[mid+1])//记住这一点:针对于和有序的序列的优化(这种情况最好用Insertion Sort)
    __merge(arr, l, mid, r);

}
如上,加粗并是斜体的两句代码用了“递归操作”:对于第一句代码在图上就可以代表1234这一块,然后这一句是递归会继续调用这个函数就出现了下面的
12块和34块;接着12块(第一条递归语句)调用递归就出现了 1块和2块;接着1块递归遇到条件:if (l >= r)直接返回;之后会2块递归遇到条件if (l >= r)直接返回;然后执行第三条语句: merge(arr, l, mid, r);归并操作;1块和2块会被排序成为12块返回;这时候12块排好了序;就会34块(第二条递归语句)递归;分成3块 和 4块;接着3块(第一条递归语句)递归会遇到条件if (l >= r)直接返回;然后4块(第二条递归语句)递归会遇到条件if (l >= r)直接返回;接着会调用第三条语句: merge(arr, l, mid, r);对3块和4块排序成34块返回;这时候12块 和 34块都排序好了,就会执行第三条语句:__merge(arr, l, mid, r);把12块 和 34 块 进行归并返回1234块;1234块排序完成;接着会执行5678块(第二条递归语句)进行递归。。。。。。执行顺序和上面差不多

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消