2019.9.20
后天就要考C语言二级了,刷题目的时候遇到了个快速排序算法,搜搜了解大概思路后,用C语言实现了。晚上8点到11点……大约3个小时。oh这速度……
C语言里数组名代表指针,C语言里数组名代表指针,C语言里数组名代表指针(为什么要念三遍呢?因为3小时里有大约2小时我给它没注意)
#include <stdio.h>
#include <windows.h>
#define N 10
void KuaisuSort(int a[],int b[],int qian,int hou)
{
int ha=a[qian],i,j,x=qian,y=hou;
for(j=0;j<N;j++)
b[j]=a[j];
int aok=1;
for(j=qian;j<=hou;j++)
{
if(a[j+1]<=a[j])
{
aok=0;
break;
}
}
if(aok==1)
{
return;
}
else
{
for(i=qian+1;i<=hou;i++)
{
if(a[i]>ha)
{
b[y]=a[i];
printf("\n快速排序后:");
for(j=0;j<N;j++)
printf("%5d",b[j]);
y=y-1;
}
if(a[i]<=ha)
{
b[x]=a[i];
printf("\n快速排序后:");
for(j=0;j<N;j++)
printf("%5d",b[j]);
x=x+1;
}
}
b[x]=ha;
printf("\n快速排序后:");
for(j=0;j<N;j++)
printf("%5d",b[j]);
KuaisuSort(b,a,qian,x-1);
KuaisuSort(b,a,y+1,hou);
}
}
int main()
{
int i,A[N],B[N];
printf("请输入%d个整数:\n",N);
for(i=0;i<N;i++)
scanf("%d",&A[i]);
KuaisuSort(A,B,0,N-1);
printf("快速排序后:\n");
for(i=0;i<N;i++)
printf("%5d",A[i]);
system("pause");
return 0;
}