一个快速排序问题,高手进!!!
程序代码:
下面是我写的一个快速排序的实现,但得不到正确结果,希望朋友们帮忙看下,谢谢! #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; }