一个快速排序问题,高手进!!!
程序代码:
下面是我写的一个快速排序的实现,但得不到正确结果,希望朋友们帮忙看下,谢谢!
#include<stdio.h>
#include<stdlib.h>
int PARTITION(int a[],int start,int end){
int x=a[end];
int i=start-1;
int temp1,temp2;
for(int j=start;j<=end-1;j++){
if(a[j]<=x){
i++;
temp1=a[i];a[i]=a[j];a[j]=temp1;
}
}
temp2=a[i+1];a[i+1]=x;x=temp2;
return i+1;
}
void QuickSort(int a[],int start,int end){
if(start<end){
int q=PARTITION(a,start,end);
QuickSort(a,start,q-1);
QuickSort(a,q+1,end);
}
}
int main(){
int n,*pt;
printf("input the size of array:\n");
scanf("%d",&n);
pt=(int *)malloc(n*sizeof(int));
printf("input n numbers:\n");
for(int i=0;i<n;i++)
scanf("%d",&pt[i]);
QuickSort(pt,0,n-1);
printf("the sorted numbers:\n");
for(int j=0;j<n;j++)
printf("%d ",&pt[j]);
return 0;
}







都发这么久了,看的人也挺多的,难道就没有人愿意说点什么吗,这个问题困扰小弟一个下午,知道的说下,不甚感激!!!


