日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

丰富自己的代码库-快速排序

發(fā)布時(shí)間:2024/1/17 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 丰富自己的代码库-快速排序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一些常用的代碼,和demo一定要保留,對(duì)于一個(gè)程序員的成長(zhǎng)就是不斷 學(xué)習(xí),實(shí)踐,積累,除了少數(shù)的天才外, 絕大多數(shù)程序員的發(fā)展都要經(jīng)歷的幾步,這里重點(diǎn)說(shuō)一下積累,看到一些好的代碼活著功能復(fù)雜的算法,方法,就把它收到自己的代碼庫(kù)里,至于自己的代碼庫(kù) 其實(shí)就是個(gè)本地文件夾,級(jí)別上應(yīng)該跟 你自己的代碼平級(jí),建議存成.hpp文件,即頭文件里包含實(shí)現(xiàn),這樣既保留了源碼,也可以快速引用。同時(shí)這個(gè)文件夾最好添加的環(huán)境變量中,以便使用的時(shí)候直接引用

?

下面來(lái)說(shuō)說(shuō)放入代碼庫(kù)的第一個(gè)算法程序,快速排序,網(wǎng)上對(duì)于這個(gè)解釋很多,其中有些是大而化之,看了根本不知所謂,學(xué)習(xí)算法還是重點(diǎn)了解過(guò)程,編碼終究是個(gè)小事兒。

快速排序 的過(guò)程其實(shí)很簡(jiǎn)單,

用我自己理解的方式解釋就是

首先 以第一個(gè)節(jié)點(diǎn)為準(zhǔn)(key),以某種手段讓key交換到自己排序后應(yīng)該在的位置上,同時(shí)保證左邊的數(shù)都小于這個(gè)key,右邊的數(shù)都大于這個(gè)key(如果是從大到小排序則是左邊的都大于key右邊的都小于key)

如 集合 {3,1,5,2,4} 經(jīng)過(guò)上述處理就回得到結(jié)果 {1,2,3,5,4} 也就是說(shuō)3(key)已經(jīng)抵達(dá)正確為止,同時(shí)把比三小的都放到了左邊,比三大的都放到了右邊

遞歸key的左邊 子集 直至剩下一個(gè)元素為止

遞歸key的右邊 子集 直至剩下一個(gè)元素為止

以下為代碼實(shí)現(xiàn)

template <typename T>
void QuickSort(T a[],int low,int high)
{
if(low >= high)return;
if(!a)return;

int first = low;
int last = high;
int key = a[first];

while(last>first)
{
while(last>first&&a[last]>=key)
{
last--;
}
a[first] = a[last];

while(last>first&&a[first]<=key)
{
first++;
}
a[last] = a[first];
}
a[first]=key;
QuickSort(a,low,first-1);
QuickSort(a,first+1,high);
}

轉(zhuǎn)載于:https://www.cnblogs.com/yangyang12138/p/6073106.html

總結(jié)

以上是生活随笔為你收集整理的丰富自己的代码库-快速排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。