有大神能帮我看看我的快速排序,哪里出问题了么 能编译不能运行
#include<stdio.h>#include<stdlib.h>
#define STACK_SIZE 100
typedef int ElemType;
typedef struct{
ElemType *r;
int low;
int high;
}SqList;
typedef SqList* LNode;
bool InitSqList(SqList &L){
L.r=(ElemType*)malloc(STACK_SIZE*sizeof(ElemType));
if(!L.r) return false;
L.low=L.high=1;
return true;
}
bool GetSqList(SqList &L,int a){
int i;
for(i=1;i<a+1;i++)
scanf("%d",L.r[i]);
L.high=a;
if (L.low==L.high) return false;
return true;
}
void Swap(int *a,int *b){
int i,e;
e=*a;
*a=*b;
*b=e;
}
int Partition(SqList &L,int low,int high)
{
int pivot=low;
ElemType pivotvalue=L.r[low];
while(low<high)
{
while(low<high&&L.r[high]>=pivotvalue)
high--;
while(low<high&&L.r[low]<=pivotvalue)
low++;
Swap(&L.r[low],&L.r[high]);
}
Swap(&L.r[pivot],&L.r[low]);
return low;
}
void QSort(SqList &L,int low,int high)
{
int pivotloc;
if(low<high){
pivotloc=Partition(L,low,high);
QSort(L,low,pivotloc-1);
QSort(L,pivotloc+1,high);
}
}
void print(SqList &L,int a){
int i;
for(i=0;i<a;i++)
printf("%d",L.r[i]);
}
int main(){
SqList L;int a;
InitSqList(L);
printf("ÇëÊäÈë");
scanf("%d",&a);
printf("ÇëÊäÈë");
GetSqList(L,a);
print(L,a);
Partition(L,L.low,L.high);
QSort(L,L.low,L.high);
print(L,a);
return 0;
}