#include
#include
void QuickSort(int *pData, int left, int right);
void main()
{
int a[9]={3,56,36,12,76,35,59,25,10};
int c,left=0,right=8;
int *pData=a;
cout<<"3,56,36,12,76,35,59,25,10"<<'\n';
cout<<"请选择排序方法:"<<'\n'<<"1.insertion sort"<<'\n'<<"2.bubble sort"<<"\n"<<"3.select sort"<<"\n"<<"4.quicksort"<<'\n';
cin>>c;
if(c==4)
QuickSort(a,left,right);
}
void QuickSort(int *pData, int left, int right)
{
int i, j;
int middle, iTemp;
i = left;
j = right;
middle = pData[(left + right) / 2]; //求中间值
do
{
while ((pData[i] < middle) && (i < right)) //从左扫描大于中值的数
i++;
while ((pData[j] > middle) && (j > left)) //从右扫描小于中值的数
j--;
if (i <= j) //找到了一对值
{
iTemp = pData[i];
pData[i] = pData[j];
pData[j] = iTemp;
i++;
j--;
}
} while (i <= j) ; //如果两边扫描的下标交错,就停止(完成一次)
//当左边部分有值(left
if(left
//当右边部分有值(right>i),递归右半边
if(right>i)
QuickSort (pData,i,right);
}
运行是能运行了,结果对不对我不清楚,
不过你怎么把函数的声明和定义放在主函数里面啊,
这让人很难看清楚的。