用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c++代码库

快速排序

2012-08-29 作者: 神马举报

[c++]代码库

#include <iostream>
#include <algorithm>
using namespace std;

const int size = 1000;


int partition ( int a[], int low, int high )
{
	//选择第一个a[low]作为划分的临界值
	while ( low < high )
	{
		while ( low < high && a[low] <= a[high] ) high--;
		swap ( a[low], a[high] );
		while ( low < high && a[low] <= a[high] ) low++;
		swap ( a[low], a[high] );
	}
	return low;
}

void Qsort ( int a[], int low, int high )
{
	if ( low > high ) return;
	int p = partition ( a, low, high );
	Qsort ( a, low, p-1 );
	Qsort ( a, p+1, high );
}

int main()
{
	int N, arr[size];
	int i;
	while ( cin >> N )
	{
		for ( i = 0; i < N; ++i )
			cin >> arr[i];

		Qsort ( arr, 0, N-1 );

		for ( i = 0; i < N-1; ++i )
			cout << arr[i] << " ";
		cout << arr[i] << endl;

	}
	return 0;
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...