快速排序算法小結

▼ 簡介

快速排序(Quicksort)是對冒泡排序的一種改進。
快速排序由C. A. R. Hoare在1962年提出郭赐。它的基本思想是:通過一趟排序將要排序的數(shù)據(jù)分割成獨立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小确沸,然后再按此方法對這兩部分數(shù)據(jù)分別進行快速排序捌锭,整個排序過程可以遞歸進行,以此達到整個數(shù)據(jù)變成有序序列罗捎。

▼ 原理

一趟快速排序的算法是:
1)設置兩個變量i观谦、j,排序開始的時候:i=0桨菜,j=N-1豁状;
2)以第一個數(shù)組元素作為基準點。
3)從j開始向前搜索倒得,即由后開始向前搜索(j--)泻红,找到第一個小于Ai的值A[j],將值與A[j]交換霞掺;
4)從i開始向后搜索谊路,即由前開始向后搜索(i++),找到第一個大于A[j](此時基準點)的A[i]菩彬,將A[j]與A[i]交換缠劝;
5)重復第3步
6)重復第3、4挤巡、5步剩彬,直到i=j酷麦; (3,4步中矿卑,沒找到符合條件的值,即3中A[j]不小于key,4中A[j]不大于key的時候改變j沃饶、i的值母廷,使得j=j-1轻黑,i=i+1,直至找到為止琴昆。找到符合條件的值氓鄙,進行交換的時候i, j指針位置不變业舍。另外抖拦,i==j這一過程一定正好是i+或j-完成的時候,此時令循環(huán)結束)舷暮,到此找到基準點的下標态罪,作為分治下標。
7重復1-6步驟遞歸排序前半部分
8 重復1-6步驟遞歸排序后半部分

▼ 代碼

<pre>
public static void sort(int a[], int low, int hight) {
int i, j, index;
if (low > hight) {
return;
}
i = low;
j = hight;
index = a[i]; // 用子表的第一個記錄做基準
while (i < j) { // 從表的兩端交替向中間掃描
while (i < j && a[j] >= index)
j--;
if (i < j)
a[i++] = a[j];// 用比基準小的記錄替換低位記錄
while (i < j && a[i] < index)
i++;
if (i < j) // 用比基準大的記錄替換高位記錄
a[j--] = a[i];
}
a[i] = index;// 將基準數(shù)值替換回 a[i]
sort(a, low, i - 1); // 對低子表進行遞歸排序
sort(a, i + 1, hight); // 對高子表進行遞歸排序
}
</pre>

▼ 屬性

穩(wěn)定度:不穩(wěn)定
最差時間分析:O(n2)
平均時間復雜度: O(n*log2n)
空間復雜度:O(log2n)-O(n)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末下面,一起剝皮案震驚了整個濱河市复颈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌沥割,老刑警劉巖耗啦,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異机杜,居然都是意外死亡帜讲,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門椒拗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舒帮,“玉大人,你說我怎么就攤上這事陡叠⊥娼迹” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵枉阵,是天一觀的道長译红。 經(jīng)常有香客問我,道長兴溜,這世上最難降的妖魔是什么侦厚? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮拙徽,結果婚禮上刨沦,老公的妹妹穿的比我還像新娘。我一直安慰自己膘怕,他們只是感情好想诅,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般来破。 火紅的嫁衣襯著肌膚如雪篮灼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天徘禁,我揣著相機與錄音诅诱,去河邊找鬼。 笑死送朱,一個胖子當著我的面吹牛娘荡,可吹牛的內容都是我干的。 我是一名探鬼主播驶沼,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼它改,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了商乎?” 一聲冷哼從身側響起央拖,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鹉戚,沒想到半個月后鲜戒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡抹凳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年遏餐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赢底。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡失都,死狀恐怖,靈堂內的尸體忽然破棺而出幸冻,到底是詐尸還是另有隱情粹庞,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布洽损,位于F島的核電站庞溜,受9級特大地震影響,放射性物質發(fā)生泄漏碑定。R本人自食惡果不足惜流码,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望延刘。 院中可真熱鬧漫试,春花似錦、人聲如沸碘赖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至秘车,卻和暖如春典勇,著一層夾襖步出監(jiān)牢的瞬間劫哼,已是汗流浹背叮趴。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留权烧,地道東北人眯亦。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像般码,于是被迫代替她去往敵國和親妻率。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內容

  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個記錄插入到已排序好...
    依依玖玥閱讀 1,258評論 0 2
  • 概述 排序有內部排序和外部排序板祝,內部排序是數(shù)據(jù)記錄在內存中進行排序宫静,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,186評論 0 52
  • 概述:排序有內部排序和外部排序券时,內部排序是數(shù)據(jù)記錄在內存中進行排序孤里,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    每天刷兩次牙閱讀 3,732評論 0 15
  • 2016年即將過去,歲末年尾炸枣,是年度總結的時候了虏等。今年的我做了些什么?收獲了些什么适肠?能跟大家分享些什么呢霍衫? 201...
    依然成長閱讀 488評論 7 5
  • 兒子早上8點起床后就要修電腦,我建議他先把電腦放在店里去修侯养,自己先回來慕淡。畢竟今天上午九點半還要補課,老師等會就過來...
    不忘初心堅持到底閱讀 168評論 1 4