问题遇到的现象和发生背景
练习C语言快排,参考了很多教程终于打出来了,但是结果很奇怪,不知道哪里出了问题
问题相关代码,请勿粘贴截图
#include <stdio.h>
int Quick_Sort(int *arr,int left,int right);
void QuickSort(int* arr,int left,int right);
void Swap(int a,int b);
int main()
{
int a[4],*A,i,l=0,r=3;
for(i=0;i<4;i++)
scanf("%d",&a[i]);
A=a;
QuickSort(A,l,r);
return 0;
}
int Quick_Sort(int *arr,int left,int right)
{
int i,j;
for(i=left,j=left;i<right;i++)
{
if(arr[i]<arr[right])
{
Swap(arr[i],arr[j]);
j++;
}
}
Swap(arr[right],arr[j]);
return j;
}
void QuickSort(int* arr,int left,int right)
{
int div,i;
if(left<right)
{div=Quick_Sort(arr,left,right);
QuickSort(arr,left,div-1);
QuickSort(arr,div+1,right);
for(i=0;i<4;i++)
{
printf("%d",arr[i]);
}
}
}
void Swap(a,b)
{
int c;
c=a;
a=b;
b=c;
}