/*快速排序的实现*/
#include <iostream>
using namespace std;
void swap(int &a,int &b)
{
int temp = a;
a = b;
b = temp;
}
int partition(int arr[],int left,int right)
{
int key = arr[right]; //以数组中最后一个元素arr[right]为主元。
int i = left - 1;
for(int j=left;j<right;j++) ///注:j从left到right-1。
{
if(arr[j] <= key)
{
i = i + 1;
swap(arr[i],arr[j]);
}
}
swap(arr[i+1],arr[right]);
return i+1;
}
void qSort(int arr[],int left,int right)
{
if(left < right)
{
int i = partition(arr,left,right);
qSort(arr,left,i-1);
qSort(arr,i+1,right);
}
}
int main()
{
int arr[] = {3,8,7,1,2,5,6,4};
qSort(arr,0,7);
for(int i = 0;i < 8;i++)
cout << arr[i];
cout << endl;
return 0;
}
快速排序的实现(快排)
最新推荐文章于 2022-05-14 16:27:13 发布