原理(升序):
1.第一趟排序先將數組第一個數用pivot作爲基準保存
2.先從最右側開始,若遇到的元素比pivot小,則將此元素賦值給當前i代表的元素(這裏的賦值就是交換,下同)
3.再從左側開始,若遇到的元素比pivot大,則將此元素賦值給當前j代表的元素
4處理左邊子序列
5.處理右邊子序列
#include<bits/stdc++.h>
using namespace std;
void quickSort(int* arr,int low,int high);
int main()
{
int n,a[50];
cin >> n;
for(int i = 0; i < n; i++)
cin >> a[i];
quickSort(a,0,n-1);
for(int i = 0; i < n; i++)
cout << a[i] << " ";
return 0;
}
void quickSort(int* arr,int low,int high)
{
int i = low, j = high;
if(i >= j)
return;
int pivot = arr[i];
while(i < j && arr[j] >= pivot)
j--;
arr[i] = arr[j];
while(i < j && arr[i] <= pivot)
i++;
arr[j] = arr[i];
arr[i] = pivot;
quickSort(arr,low,i-1);
quickSort(arr,i+1,high);
}