下面時快速排序的過程:
把圖看懂,下面程式打一遍你就會如何編寫快速排序了
#include
#include
using
namespace
std;
int a[101],n;
void quicksort(int left,int right)
} //最終基準歸位
a[left] = a[i];
a[i] = temp;
quicksort(i+1,right);//繼續處理左邊的,如果是乙個遞迴的過程
quicksort(left,i-1);//繼續處理右邊,這裡是乙個遞迴的過程
return;
} int main()
quicksort(1,n);//快速排序的呼叫
//輸出排序後的結果
for(i=1;i<=n;i++)
getchar();
getchar();
return
0;}
快速排序詳解
快速排序也是基於交換的原理進行的,是對氣泡排序的一種改進。即它是通過不斷比較和移動交換來實現排序的,只不過它的實現,增大了記錄的比較和移動的距離,將關鍵字比較大的記錄從前面直接移動到後面,關鍵字較小的記錄從後面直接移動到前面,從而減小了總的比較次數和移動次數。快速排序是找出乙個元素 理論上可以隨便找...
快速排序詳解
對於陣列s 2,1,3,0,4,5,8,7,1 進行排序 最好的情況是val每一次取到中間值,則複雜度為nlog n 最壞的情況是val每一次取到最小值或者最大值,則複雜度為n 2 include include include include include include include inc...
快速排序詳解
快速排序法詳解 快速排序法 quicksort 是一種非常快的對比排序方法。它也divide and conquer思想的實現之一。自從其產生以來,快速排序理論得到了極大的改進,然而在實際中卻十分難以程式設計出正確健壯的 本文將對快速排序演算法的基本理論和程式設計實踐方面做作乙個全面的講解。在本文講...