一个快速排序算法 输入10个数
代码如下:
#include
#define N 10
int a[N];
void quickSort(int *arr,int l,int r)
{//此处编写代码实现快速排序
int i,j,x,temp;
if(l {
i=l;
j=r;
x=arr[(l+r)/2]; //以中间元素为轴
while(1)
{
while(i<=r&&arr[i] while(j>=0&&arr[j]>x)j--;
if(i>=j) //相遇则跳出
break;
else
{
temp=arr[i];arr[i]=arr[j];arr[j]=temp; //交换
}
}
qsort(arr,l,i-1); //对左半部分进行快排
qsort(arr,j+1,r); //对右半部分进行快排
}
}
void printArray(int N)
{//此处编写代码打印数组
int i=0;
for(;i printf("%3d",a[i]);
}
main()
{
int i;
for(i=0;i scanf("%d",&a[i]);
printArray(N);
//调用快速排序函数,对数组中从0到N的元素进行快速排序
quickSort(a,0,N-1);
printArray(N);
printf("\n");
return 0;
}
阅读(912) | 评论(0) | 转发(0) |