快速排序的思想:
選擇陣列中的乙個數作為中軸線,然後以這個中軸線為中心,大於中軸線的資料放到右邊,小於中軸線的資料放到左邊,
然後每次比較完後再變中軸線的位置,不斷比較下去
**:
#include using namespace std;
template void quick_sort(t arry, int left, int right)
while (i < j);
swap(arry[left],arry[j]); //改變中軸線的位置
quick_sort(arry,left,j-1);
quick_sort(arry,j+1,right); }
}int main()
; quick_sort(arry, 0, 11);
for (int i = 0; i < 11; i++)
cout << arry[i] << " ";
cout << endl << endl << endl;
return 0;
}
執行結果: 四 排序演算法
1.快速排序 procedure qsort l,r integer var i,j,mid integer begin i l j r mid a l r div 2 repeat while a i mid do dec j if i j then begin swap a i a j inc ...
2 排序演算法 快速排序
問題描述 利用快速排序演算法對下列例項排序,在演算法執行過程中,寫出陣列 a第一次排序後被分割的過程。a 65,70,75,80,85,55,50,2 解題思想 在快速排序中,記錄的比較和交換是從兩端向中間進行的,關鍵字較大的記錄一次就能交換到後面的單元,總的比較和移動次數較少。對於輸入的陣列a p...
32排序演算法之快速排序
排序演算法之快速排序 基本原理 反覆進行有序劃分。有序劃分方法 在陣列a中任選乙個元素x作為劃分元素,通過比較將小於x的元素換到陣列的左端 左段 將大於或等於x的元素換到陣列右端 右段 x本身位於兩段之間。如果左 右段元素個數多於1,則遞迴的將左 右段各自劃分,直到每段元素個數都不超過1,從而達到排...