C++基礎(chǔ)語(yǔ)法梳理:算法丨十大排序算法(一)
本期是C++基礎(chǔ)語(yǔ)法分享的第十五節(jié),今天給大家來(lái)梳理一下十大排序算法前五個(gè)!

冒泡排序
冒泡排序思路:
1. 比較相鄰的元素。如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。
2. 對(duì)每一對(duì)相鄰元素作同樣的工作,從開(kāi)始第一對(duì)到結(jié)尾的最后一對(duì)。這步做完后,最后的元素會(huì)是最大的數(shù)。
3. 針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。
4. 持續(xù)每次對(duì)越來(lái)越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。
示例:
選擇排序
選擇排序思路:
1. 在未排序序列中找到最小(大)元素,存放到排序序列的起始位置
2. 從剩余未排序元素中繼續(xù)尋找最?。ù螅┰兀缓蠓诺揭雅判蛐蛄械哪┪?/p>
3. 以此類(lèi)推,直到所有元素均排序完畢
示例:
插入排序
插入排序思路:
1. 從第一個(gè)元素開(kāi)始,該元素可以認(rèn)為已經(jīng)被排序
2. 取出下一個(gè)元素,在已經(jīng)排序的元素序列中從后向前掃描
3. 如果該元素(已排序)大于新元素,將該元素移到下一位置
4. 重復(fù)步驟3,直到找到已排序的元素小于或者等于新元素的位置
5. 將新元素插入到該位置后
6. 重復(fù)步驟2~5
示例:
快速排序
快速排序思路:
1. 選取第一個(gè)數(shù)為基準(zhǔn)
2. 將比基準(zhǔn)小的數(shù)交換到前面,比基準(zhǔn)大的數(shù)交換到后面
3. 對(duì)左右區(qū)間重復(fù)第二步,直到各區(qū)間只有一個(gè)數(shù)
堆排序
堆排序:(最大堆,有序區(qū))。從堆頂把根卸出來(lái)放在有序區(qū)之前,再恢復(fù)堆。
今天的分享就到這里了,大家要好好學(xué)C++喲~
寫(xiě)在最后:對(duì)于準(zhǔn)備學(xué)習(xí)C/C++編程的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開(kāi)始!
微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地
整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門(mén)教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!
