#include <iostream.h>
typedef int DataType;
class S{
public:
static void GenerateArray(DataType a[],int num);
static void quick_sort(DataType a[],int num);
static void partition(DataType a[],int low,int high);
};
//快排
void S::partition(DataType a[],int low,int high){
int i = low;
int j = high;
DataType key = a[i];
if(i>j){
return;
}
while(i<j){
while(i<j&&key<a[j]){
j--;
}
if(i<j){
a[i++] = a[j];
}
while(i<j&&a[i]<key){
i++;
}
if(i<j){
a[j--] = a[i];
}
}
a[i] = key;
S::partition(a,low,--i);i++;S::partition(a,++i,high);}void S::quick_sort(DataType a[],int num){S::partition(a,0,num-1); }//生成样本数组void S::GenerateArray(DataType a[],int num){int i;srand(time(NULL));for(i=0;i<num;i++){a[i]=(DataType)(rand());
}}int main(int argc, char *argv[]){DataType a[10];int num = 10;//快速排序 S::GenerateArray(a,10);cout<<"快速排序之前"<<endl;for(int i=0;i<num;i++){cout<<a[i]<<" ";}cout<<endl;S::quick_sort(a,num); cout<<"快速排序之后"<<endl;for(int i=0;i<num;i++){cout<<a[i]<<" ";}cout<<endl;return
0;}