#include <vector>
#include <iostream>
#include <string>
using namespace std;
//交换两个元素
void exchange(int *a,int *b)
{
int temp=*a;
*a=*b;
*b=temp;
}
//以low为划分元
int sort(int *arr,int low,int high)
{
int temp=arr[high];
int i=low-1;
for(int j=low;j<high;j++)
{
if(arr[j]<temp)
{
i++;
exchange(&arr[j],&arr[i]);
}
}
exchange(&arr[i+1],&arr[high]);
return i+1;
}
//采用分治法调用
void quicksort(int *arr,int low,int high)
{
if(low<high)
{
int i=sort(arr,low,high);
quicksort(arr,low,i-1);
quicksort(arr,i+1,high);
}
}
int main()
{
int test[10]={21,30,5,6,11,45,20,10,9,12};
quicksort(test,0,9);
for(int i=0;i<10;i++)
{
cout<<test[i]<<" ";
}
return 0;
}
#include <iostream>
#include <string>
using namespace std;
//交换两个元素
void exchange(int *a,int *b)
{
int temp=*a;
*a=*b;
*b=temp;
}
//以low为划分元
int sort(int *arr,int low,int high)
{
int temp=arr[high];
int i=low-1;
for(int j=low;j<high;j++)
{
if(arr[j]<temp)
{
i++;
exchange(&arr[j],&arr[i]);
}
}
exchange(&arr[i+1],&arr[high]);
return i+1;
}
//采用分治法调用
void quicksort(int *arr,int low,int high)
{
if(low<high)
{
int i=sort(arr,low,high);
quicksort(arr,low,i-1);
quicksort(arr,i+1,high);
}
}
int main()
{
int test[10]={21,30,5,6,11,45,20,10,9,12};
quicksort(test,0,9);
for(int i=0;i<10;i++)
{
cout<<test[i]<<" ";
}
return 0;
}