快速排序法

算法步驟:

1:從數(shù)列中挑選一個(gè)元素构捡,稱(chēng)為“基準(zhǔn)”脏里,

2:重新排序數(shù)列果漾,所有元素比基準(zhǔn)小的值擺放在基準(zhǔn)前球切,所有元素比基準(zhǔn)大的值擺放在基準(zhǔn)后,(相同的數(shù)可以任意一邊)在這個(gè)分區(qū)退出之后绒障,該基準(zhǔn)處于分區(qū)的中間位置吨凑。這個(gè)稱(chēng)為分區(qū)操作

3:遞歸的把小于基準(zhǔn)元素的子數(shù)列和大于基準(zhǔn)元素的自數(shù)列進(jìn)行排序

intpartition(int*arr,intlow,inthigh){

intprivot = arr[high];

inti = low - 1;

intj,tmp;

for(j = low; j

if(arr[j]

tmp = arr[++i];

arr[i] = arr[j];

arr[j] = tmp;

}

}

tmp = arr[i + 1];

arr[i + 1] = arr[high];

arr[high] = tmp;

returni + 1;

}

voidquick_sort(int*arr,intlow,inthigh){

if(low

intmid =partition(arr, low, high);

quick_sort(arr,low,mid-1);

quick_sort(arr,mid + 1,high);

}

}

intmain(intargc,constchar* argv[]) {

intarr[10] = {1,2,5,3,6,8,7,23,15};

quick_sort(arr, 0, 9);

inti;

for(i = 0; i < 10; ++i) {

printf("%d ",arr[i]);

}

return0;

}

算法復(fù)雜度:

最壞情況下的開(kāi)拍時(shí)間復(fù)雜度

最壞的情況發(fā)生在劃分過(guò)程中產(chǎn)生的兩個(gè)區(qū)域分別包含一個(gè)n-1和一個(gè)0元素的時(shí)候,即假設(shè)算法每一次遞歸調(diào)用過(guò)程中都出現(xiàn)了户辱,這種劃分不對(duì)稱(chēng)鸵钝,那么劃分的代價(jià)為o(n),因?yàn)閷?duì)一個(gè)大小為0的數(shù)組遞歸調(diào)用后庐镐,返回T(0)=O(1)恩商,估算法的運(yùn)行時(shí)間可以遞歸表示為:

T(n)= T(n-1) + T(0) +O(n) = T(n-1)+O(n).

可以證明為T(mén)(n) = O(n^2).

因此,若在算法的每一層遞歸上焚鹊,劃分都是最大不對(duì)稱(chēng)的話痕届,算法的時(shí)間復(fù)雜度為O(n^2)

最快情況下開(kāi)拍時(shí)間復(fù)雜度:

最快情況下,及Partition可能做的最平衡的劃分中末患,得到的每一個(gè)子問(wèn)題都不能大于n/2研叫。因?yàn)槠渲幸粋€(gè)子問(wèn)題的大小為|n/2|。另一個(gè)的子問(wèn)題的大小為|-n/2|-1

在這種情況下璧针,快速排序的速度要快的多

T(n)<2T(n/2)+O(n),可以證得嚷炉,T(n) = O(nlgn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市探橱,隨后出現(xiàn)的幾起案子申屹,更是在濱河造成了極大的恐慌,老刑警劉巖隧膏,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哗讥,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡胞枕,警方通過(guò)查閱死者的電腦和手機(jī)杆煞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人决乎,你說(shuō)我怎么就攤上這事队询。” “怎么了构诚?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵蚌斩,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我范嘱,道長(zhǎng)送膳,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任彤侍,我火速辦了婚禮肠缨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘盏阶。我一直安慰自己晒奕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布名斟。 她就那樣靜靜地躺著脑慧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪砰盐。 梳的紋絲不亂的頭發(fā)上闷袒,一...
    開(kāi)封第一講書(shū)人閱讀 49,837評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音岩梳,去河邊找鬼囊骤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛冀值,可吹牛的內(nèi)容都是我干的也物。 我是一名探鬼主播,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼列疗,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼滑蚯!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起抵栈,我...
    開(kāi)封第一講書(shū)人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤告材,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后古劲,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體斥赋,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年产艾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疤剑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洛波。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖骚露,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缚窿,我是刑警寧澤棘幸,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站倦零,受9級(jí)特大地震影響误续,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜扫茅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一蹋嵌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧葫隙,春花似錦栽烂、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至糟描,卻和暖如春怀喉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背船响。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工躬拢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人见间。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓聊闯,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親缤剧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子馅袁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • Hello,大家好,今天繼續(xù)排序系列之二講?《快速排序法》荒辕!在平均狀況下汗销,排序 n 個(gè)項(xiàng)目要Ο(n log ...
    Leon_Geo閱讀 479評(píng)論 0 1
  • Ba la la la ~ 讀者朋友們,你們好啊抵窒,又到了冷鋒時(shí)間弛针,話不多說(shuō),發(fā)車(chē)李皇! 1.冒泡排序(Bub...
    王飽飽閱讀 1,790評(píng)論 0 7
  • 某次二面時(shí)削茁,面試官問(wèn)起Js排序問(wèn)題宙枷,吾絞盡腦汁回答了幾種,深感算法有很大的問(wèn)題茧跋,所以總計(jì)一下慰丛! 排序算法說(shuō)明 (1...
    流浪的先知閱讀 1,189評(píng)論 0 4
  • 其實(shí),今天是一個(gè)特別的日子瘾杭。 今天诅病,是小小兔和大胖兔認(rèn)識(shí)的第365天。也就是說(shuō)粥烁,一年贤笆。 時(shí)間真的過(guò)得很快,...
    sunny小小靜靜閱讀 1,004評(píng)論 0 3
  • 雪兒大人根本不知道哪一天是母親節(jié)讨阻,只是隨著巧虎以及幼兒園的教導(dǎo)在說(shuō):媽媽?zhuān)拔濉庇H節(jié)快樂(lè)芥永!我好愛(ài)你。 她抱著我說(shuō)了...
    小夏冬閱讀 96評(píng)論 0 0