1003.快速排序
时限:1000ms 内存限制:10000K 总时限:3000ms
描述
给定一个数列,用快速排序算法把它排成升序。
输入
第一行是一个整数nn不大于10000),表示要排序的数的个数;下面一行是用空格隔开的n个整数。
输出
输出排序后的数列,每个数字占一行。
输入样例
5
3 2 1 4 5
输出样例
1
2
3
4
5
#include <stdio.h> int n; int a[10001]; void quicksortint left,int right) { int i,j,t,temp; ifleft>right) return; temp = a[left]; i=left; j=right; whilei!=j) { whilea[j]>=temp&&i<j) j--; whilea[i]<=temp&&i<j) i++; ifi<j) { t=a[i]; a[i]=a[j]; a[j]=t; } } a[left]=a[i]; a[i]=temp; quicksortleft,i-1); quicksorti+1,right); } int mainint argc, char const *argv[]) { int i; scanf"%d",&n); fori=0;i<n;i++) scanf"%d",&a[i]); quicksort0,n-1); fori=0;i<n;i++) printf"%d ",a[i]); return 0; }
个人建议背会该段代码。。。。。。