NOJ 1064 快速排序

快速排序

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 1078            测试通过 : 416

比赛描述

给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中快速排序算法进行排序,并输出排序最后结果的相应序列。



输入

共两行,第一行给出排序元素数目n,第二行给出n个元素,1≤n≤100000,每个元素值范围为 [0,100000)

输出

一行,输出排序结果。

样例输入

7
48 36 68 72 12 48 2

样例输出

2 12 36 48 48 68 72

提示

 数据结构A实验四

题目来源

CHENZ

注:此题为:南京邮电大学 NOJ 1064 快速排序

说明:快排,sort排序;输出最后不能有空格

    快排思想:

        从待排序列中任取一个元素 (例如取第一个) 作为中心,所有比它小的元素一律前放,所有比它大的元素一律后放,形成左右两个子表;

        然后再对各子表重新选择中心元素并依此规则调整,直到每个子表的元素只剩一个。此时便为有序序列了。

        每一趟的子表的形成是采用从两头向中间交替式逼近法; 主程序可采用递归算法

 

已AC源代码:

#include
#include
#define M 100000
using namespace std;
int a[M+1];
int y_jj(int a[],int low,int high)
{
	int t,l,h;
	t=a[low];
	l=low;
	h=high;
	while(l=t)
			h--;
		a[l]=a[h];
		while(l=high)
		return ;
		
	m=y_jj(a,low,high);
	y_sort(a,low,m-1);
	y_sort(a,m+1,high);
}

int main()
{
	int n,i;
	//while(cin>>n)
	//{
		cin>>n;
		memset(a,0,sizeof(a));
		for(i=0;i>a[i];
		y_sort(a,0,n-1);
		for(i=0;i


下面用sort 简单:

#include
#include
#define M 100000
using namespace std;
int main()
{
	int a[M+1],n,i;
	cin>>n;
	for(i=0;i>a[i];
	sort(a,a+n);
	for(i=0;i

你可能感兴趣的:(排序,NOJ-邮大)