题目描述:
给定你一个长度为 n 的整数数列,请你使用快速排序对这个数列按照从小到大进行排序,并将排好序的数列按顺序输出。
输入格式:
输入共两行,第一行包含整数 n。
第二行包含 n 个整数(所有整数均在1∼99 范围内),表示整个数列。
输出格式:
输出共一行,包含 n 个整数,表示排好序的数列。
例子:
5
10 9 8 7 6
输出样例:
6 7 8 9 10
#include#include int swap(int &a,int &b);//定义了一个互换函数。 int quicksort(int s[],int l,int r);//快速排序法。 int main() { int i,a[100],n; scanf("%d",&n); for(i=0;i =r){ return 0; } else { w=l;k=r;//数组最左边序号赋值给w,数组最右边序号赋值给k。 set=s[w];//基准为s[w]。 while(w!=k){ while(w =s[w]){ w++; } swap(s[w],s[k]); } quicksort(s,l,w-1);//递归二分发类似。 quicksort(s,w+1,r); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)