洛谷-P1271 【深基9.例1】选举学生会

题目描述

学校正在选举学生会成员,有 n(n\le 999)n(n≤999) 名候选人,每名候选人编号分别从 1 到 nn,现在收集到了 m(m<=2000000)m(m<=2000000) 张选票,每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序。输入 nn 和 mm 以及 mm 个选票上的数字,求出排序后的选票编号。

输入格式

输出格式

输入输出样例

输入 #1复制

5 10
2 5 2 2 5 2 2 2 1 2

输出 #1复制

1 2 2 2 2 2 2 2 5 5

 

分析:

排序篇的第一题,没啥说的,冒牌?选择?不行,两百万大小的数组在那摆着呢,想想都会超时,快排吧

啪啪啪啪,一顿手撸代码,写完了,不愧是练了一寒假的蓝桥杯,写快排还不是轻而易举?

#include
#include
using namespace std;

int n;
int m;
int xp[2000005];
void quicksort(int left,int right);
int findmid(int left,int right);
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	cin>>xp[i];
	quicksort(1,m);
	//sort(xp+1,xp+m+1);
	cout<=right)
	return;
	int midnum=findmid(left,right);
	//cout<<"mid is "<=right)
	return left;
	int high=right;
	int low=left;
	int temp=xp[low];
	while(low=temp) high--;
		xp[low]=xp[high];
		while(low

走你,五个测试数据,超时俩???

不是吧兄弟,这是快排,还能超时?快排都超时,其他的还玩什么?

人类迷惑大赏,没啥说的,去看看题解吧

emmmm,大家提到了桶排序,这是什么排序?之前没听过

竟然还有人用了c++STL里的sort就AC了??????怎么可能,我快排怎么会比他一个自带的sort还要慢?

一定是误判了,快排再来一遍,还是超时,我呆了,那试试sort吧,走你,我靠,AC了?

不行,我不相信,为什么快排还不如一个sort?

去网上找找答案,嗯....找到了一篇,原来sort并不慢啊,是基于快排改进的函数.....是我孤陋寡闻了,我之前一直以为自带的sort函数时间复杂度是O(n^2),好吧,记住了,以后多用这个了,而且貌似sort比你一般手写的快排性能还要好.....我去自闭会儿

上sort代码

#include
#include
using namespace std;

int n;
int m;
int xp[2000005];
void quicksort(int left,int right);
int findmid(int left,int right);
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	cin>>xp[i];
	//quicksort(1,m);
	sort(xp+1,xp+m+1);
	cout<=right)
	return;
	int midnum=findmid(left,right);
	//cout<<"mid is "<=right)
	return left;
	int high=right;
	int low=left;
	int temp=xp[low];
	while(low=temp) high--;
		xp[low]=xp[high];
		while(low

既然提到了桶排序,那就去看看桶排序是啥,以前也没听说过,看到一篇博客讲得不错

https://www.cnblogs.com/bqwzx/p/11029264.html

那就实现一下吧

#include
#include
using namespace std;

int n;
int m;
int xp[2000005];
int a[1000];
void quicksort(int left,int right);
int findmid(int left,int right);
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	cin>>xp[i];
	for(int i=1;i<=m;i++)
		a[xp[i]]+=1;
	
	
	
	for(int i=1;i<=n;i++)
	{
		while(a[i])
		{
			cout<

也AC了,看来桶排序还是有点用的,以后要多注意了

你可能感兴趣的:(洛谷)