今天又複習了下快速排序,主要思想是先把陣列的最左邊的這個數作為乙個基準數,然後在通過類似二分法把大於基準數的數放在右邊,小於基準數的數放在左邊。這就是其主要思想。
c++**如下:
#include
#include
using
namespace std;
int a[11]
;void
quick_sort
(int begin,
int end)
while
(a[i]
<= temp && i < j)
if(i < j)
}//把基準數放到它的位置
a[begin]
= a[i]
; a[i]
= temp;
quick_sort
(begin,i -1)
;quick_sort
(i +
1,end);}
intmain()
這裡得注意的一點是你必須從右邊開始進行判斷從而j- -,假設你從左邊開始的話,當你找到大於基準數的數時,你就得使基準數與你找到的這個數進行交換,而我們快排的思想是使小於基準數的數放在左邊,違背了基本思想。則可能會出現問題。而從右邊開始,即使找到乙個小於基準數的數,進行交換也無大礙。 python實現快排演算法 python快排演算法詳解
快排是python經典演算法之一。1 下面講解的是什麼是快排和快排的圖示。2 快排是一種解決排序問題的運算方法。3 快排的原理 在陣列中任意選擇乙個數字作為基準,用陣列的資料和基準資料進行比較,比基準數字打的數字的基準數字的右邊,比基準數字小的數字在基準數字的左邊,第一次排序之後分為比基準資料大或比...
2011 4 15 快排演算法,堆排演算法
template int get pivot index value type array,int start,int end value type pivot array start while start end while startpivot end array start array en...
排序演算法 快排
今天聊聊排序演算法,排序演算法平時也會用到,有很多比如,冒泡,快排,選擇,歸併排序等 今天就聊一聊快速排序演算法排序演算法的乙個宗旨就是經過一趟排序,何為一趟排序呢?就是遍歷完一次陣列,陣列中的一部分資料比另外一部分的資料都要小 當然這兩部分資料內部仍然是無序的,然後我們再對這兩部分資料分別進行排序...