四 排序演算法 快速排序

2021-10-07 05:19:33 字數 558 閱讀 7606

快速排序的思想:

選擇陣列中的乙個數作為中軸線,然後以這個中軸線為中心,大於中軸線的資料放到右邊,小於中軸線的資料放到左邊,

然後每次比較完後再變中軸線的位置,不斷比較下去

**:

#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,從而達到排...