快速排序

什么是快速排序子巾?

快速排序由C. A. R. Hoare在1962年提出。

它的基本思想是:

通過一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨立的兩部分沐扳,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小.

然后再按此方法對這兩部分數(shù)據(jù)分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數(shù)據(jù)變成有序序列袋毙。

實現(xiàn)思路:

1.先從數(shù)列中取出一個數(shù)作為基準數(shù)。

2.分區(qū)過程冗尤,將比這個數(shù)大的數(shù)全放到它的右邊听盖,小于或等于它的數(shù)全放到它的左邊胀溺。

3.再對左右區(qū)間重復第二步,直到各區(qū)間只有一個數(shù)皆看。

過程圖解:

如上圖所示仓坞,經(jīng)過第一輪劃分以后,數(shù)組以32位界限被分成了兩部分腰吟,左邊的都比32小扯躺,右邊的都比32大,接下來只要對兩個分區(qū)重復上述步驟蝎困,直到每個分區(qū)都只有一個數(shù)據(jù)位置录语。

代碼實現(xiàn):

/**

* @param s

* @param l

* @param r

*/

static void quickSort(int s[], int l, int r) {

if (l < r) {

int i = l, j = r, x = s[l];

while (i < j) {

while (i < j && s[j] >= x)

// 從右向左找第一個小于x的數(shù)

j--;

if (i < j)

s[i++] = s[j];

while (i < j && s[i] < x)

// 從左向右找第一個大于等于x的數(shù)

i++;

if (i < j)

s[j--] = s[i];

}

s[i] = x;

quickSort(s, l, i - 1); // 遞歸調(diào)用

quickSort(s, i + 1, r);

}

}


總結(jié):

時間復雜度:O(n*lgn)

最壞:O(n^2)

空間復雜度:O(n*lgn)

穩(wěn)定性:不穩(wěn)定。

快速排序是一種排序算法禾乘,對包含n個數(shù)的輸入數(shù)組澎埠,平均時間為O(nlgn),最壞情況是O(n^2)始藕。

通常是用于排序的最佳選擇蒲稳。因為,基于比較的排序伍派,最快也只能達到O(nlgn)江耀。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市诉植,隨后出現(xiàn)的幾起案子祥国,更是在濱河造成了極大的恐慌,老刑警劉巖晾腔,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舌稀,死亡現(xiàn)場離奇詭異,居然都是意外死亡灼擂,警方通過查閱死者的電腦和手機壁查,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剔应,“玉大人睡腿,你說我怎么就攤上這事【” “怎么了席怪?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長月洛。 經(jīng)常有香客問我何恶,道長,這世上最難降的妖魔是什么嚼黔? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任细层,我火速辦了婚禮惜辑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘疫赎。我一直安慰自己盛撑,他們只是感情好,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布捧搞。 她就那樣靜靜地躺著抵卫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪胎撇。 梳的紋絲不亂的頭發(fā)上介粘,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音晚树,去河邊找鬼姻采。 笑死,一個胖子當著我的面吹牛爵憎,可吹牛的內(nèi)容都是我干的慨亲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼宝鼓,長吁一口氣:“原來是場噩夢啊……” “哼刑棵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起愚铡,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蛉签,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后茂附,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體正蛙,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年营曼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片愚隧。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蒂阱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狂塘,到底是詐尸還是另有隱情录煤,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布荞胡,位于F島的核電站妈踊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏泪漂。R本人自食惡果不足惜廊营,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一歪泳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧露筒,春花似錦呐伞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瘪吏,卻和暖如春癣防,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背掌眠。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工蕾盯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人扇救。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓刑枝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親迅腔。 傳聞我的和親對象是個殘疾皇子装畅,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

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

  • quicksort可以說是應用最廣泛的排序算法之一,它的基本思想是分治法沧烈,選擇一個pivot(中軸點)掠兄,將小于pi...
    黎景陽閱讀 447評論 0 1
  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經(jīng)驗。 張土汪:刷leetcod...
    土汪閱讀 12,745評論 0 33
  • 1. Java基礎部分 基礎部分的順序:基本語法锌雀,類相關的語法蚂夕,內(nèi)部類的語法,繼承相關的語法腋逆,異常的語法婿牍,線程的語...
    子非魚_t_閱讀 31,632評論 18 399
  • 總結(jié)一下常見的排序算法。 排序分內(nèi)排序和外排序惩歉。內(nèi)排序:指在排序期間數(shù)據(jù)對象全部存放在內(nèi)存的排序等脂。外排序:指在排序...
    jiangliang閱讀 1,346評論 0 1
  • 《畫魂》 作者:李恩揮 我的家里最近安置了一個新家具,梅雨送我的撑蚌,一張棕紅色帶著香味兒的沙發(fā)上遥。這張沙發(fā)有三個坐墊,...
    李恩揮閱讀 4,681評論 11 44