個人理解:
1:在一組資料中尋找基準數
2:在左右兩端開始比較,從右開始往左推遇到比基準數小的便停下定位,再從左開始往右推遇到比基準數大的數也停下定位,然後將這兩個數交換位置。
4:最後將基準數放到資料中間,右邊留有比基準數大的數,左邊留有比基準數小的數。
5:在以基準數為界,將兩邊再次分為兩組資料。
6:兩組資料再找出各組資料的基準數進行排序,以此類推。
快速排序法不像氣泡排序法一樣需要一一比較排序。
快速排序之所以比較快,是因為相比氣泡排序,每次是跳躍式的。——《啊哈!演算法》
#include
int a[
101]
,n;//定義全域性變數
void
quicksort
(int left,
int right)
}//最終將基準數歸為
a[left]
=a[i]
; a[i]
=temp;
quicksort
(left,i-1)
;//繼續處理左邊的,這裡是乙個遞迴過程
quicksort
(i+1
,rignt)
;//繼續處理右邊的,這裡是個遞迴過程
return;}
intmain()
——————————來自《啊哈!演算法》
排序演算法筆記 快速排序 Quicksort
using system using system.collections.generic using system.linq using system.text namespace test sort array,0,array.length 1 console.readline 一次排序單元,完...
快速排序演算法 總結筆記
首先選擇乙個關鍵值key,作為樞軸。一般會將陣列的首個元素選定為key,樞軸。為什麼說是樞軸?是因為待會我們要以這個key為界,把所有小於等於key值的陣列元素放置到key的左側 把所有大於等於key值的元素移到陣列的右側。key,充當了乙個臨界軸的作用,所以叫它樞軸並不為過。定義兩個變數,firs...
演算法4 2 3快速排序筆記
熵最佳排序 package com.concurency.sort import edu.princeton.cs.algs4.stdout import edu.princeton.cs.algs4.stdrandom 快速排序 public class quick public static v...