每次排序的時候設定乙個基準點,將小於等於基準點的數全部放到基準點的左邊,將大於等於基準點的數全部放到基準點的右邊。
其實快速排序是基於一種叫做「二分」的思想。
#include
using
namespace std;
intconst m=
1001
;int a[m]
;int n;
void
quicksort
(int left,
int right)
}//將資料一分為二,小於基準數的一組和大於基準數的一組
//此時,i=j,基準數的大小處於所有資料的中間
a[left]
=a[i]
; a[i]
=temp;
quicksort
(left,i-1)
;quicksort
(i+1
,right);}
intmain()
Notes 排序演算法小結 Sorting
最近兩天,複習了幾個經典的排序演算法。在這裡,寫乙份小結,粗略回顧。1 bubble sort 顧名思義,就是把最小的數如冒泡一樣,在每次的遍歷當中,移到最頂的位置。public void bubblesort int input swap input,i,min index 分析該排序演算法,比較...
演算法(一) 排序sorting
問題 輸入數字a1,a2,a3.an,使其公升序輸出。1 插入排序 insertion sort 演算法 這個演算法從陣列的第二個元素開始迴圈,將選中的元素與之前的元素一一比較,如果選中的元素小於之前的元素,則將之前的元素後移,最後再將選中的元素放在合適的位置。在這個演算法執行的過程中,總是保持著索...
排序演算法 快速排序演算法
網際網路的大型公司還在火熱招聘中,參與了一次又一次的筆試,都不通過,我還是太菜!作為程式設計人員,需要邁過去 資料結構與演算法 這個坎,畢竟,筆試不會真的很虧,加油吧,少些水,多點實操。一 快速排序演算法思想 從一組資料中找出乙個基準值,一般是選擇中間值作為基準值,然後從左到右將值與基準值進行比較,...