#include<iostream>
using namespace std;
typedef int TElemType;
TElemType a[10] = { 30,80,90,20,50,60,15,89,79,24 };
void swap(int* ar, int low, int high)
{
int temp;
temp = ar[low];
ar[low] = ar[high];
ar[high] = temp;
}
int QGetValid(int* ar, int low, int high)
{
int Qvaild;
int Key = ar[low];
while (low < high)
{
while(low < high && Key <= ar[high])
high--;
swap(ar, low, high);
while (low < high && Key >= ar[low])
low++;
swap(ar, low, high);
}
return low;
}
void Qsort(int* ar, int low, int high)
{
int Qvaild;
if (low < high)
{
Qvaild = QGetValid(ar, low, high);//取中间位置
Qsort(ar,low,Qvaild-1);
Qsort(ar, Qvaild+1, high);
}
}
void QuickSort(int* ar, int low, int high)
{
Qsort(ar, low, high);//排序算法
}
int main()
{
QuickSort(a, 0, 9);
for (int i = 0; i <10; ++i)
{
cout << a[i] << endl;
}
return 0;
}
//参考文献:《大话数据结构》