给定N个长整型范围内的整数,要求输出以给定数据中第一个数为枢轴进行一趟快速排序之后的结果。
输出一趟快速排序后的结果,数字间以一个空格间隔,行末不得有多余空格。
#include <stdio.h>
int n; void puts(int a[],int n) //输出函数 { int i; for(i=0;i<n-1;i++) { printf("%d ",a[i]); } printf("%d\n",a[i]); } int main() { int i,j; int a[1234]; while(~scanf("%d",&n)) { for(i=0;i<n;i++) { scanf("%d",&a[i]); } //一趟快排 i = 0,j = n-1; int x = a[0]; while(i<j) { while(i<j && a[j]>=x) { j--;//printf("12\n"); } a[i] = a[j]; while(i<j && a[i]<=x) { i++; //printf("11\n"); } a[j] = a[i]; } a[i] = x; puts(a,n); } return 0; }转载于:https://www.cnblogs.com/CCCrunner/p/6444569.html
相关资源:JAVA上百实例源码以及开源项目