一、单向扫描法:
#include
#include
using namespace std;
void quickSort(int arr[],int p,int r){
int partition(int arr[],int p,int r);
if(p
二、双向扫描法:
#include
#include
#include
using namespace std;
int partition2(int arr[],int p,int r){
int priority=arr[p]; //设置一个主元为初始端
int left=p+1; //从p+1开始
int right=r; //以r结束
while(left<=right){
while(left<=right&&arr[left]<=priority) left++;
while(left<=right&&arr[right]>priority) right--;
if(leftright left(将数组中right与p所指向的数进行交换)
return right;
}
void quickSort(int arr[],int p,int r){
if(p>n;
for(int i=0;i>a[i];
}
quickSort(a,0,n-1);
for(int i=0;i
三、三分法: