[URAL 1100]Final Standings(排序技巧)

来源:互联网 发布:数据的标准化处理方法 编辑:程序博客网 时间:2024/05/18 13:25

【题目描述】:

给你n(1<=n<=150000)组数,每组数有两个id和m(0<=m<=100),让你按照以m为关键字冒泡排序的顺序输出。

【题目分析】:

这个题的关键在于他要你按照冒泡排序的顺序输出。我们知道任意一个nlogn的排序算法都无法保证原数中的两个数相对位置不变。所以,就不能依靠快速排序等更快的排序算法来进行运算。

其实这个题的题眼在这:(0<=m<=100)

这让我们不得不想到桶排序。我们把这100种可能的情况记做一个个桶,然后我们来检验,进行桶排序。其实我们根本就可以按照降序来进行枚举m的值,然后将等于m的这组数输出出来,这样也就可以保证相对位置的不便。

这样反倒简单,代码仅14行。

复杂度O(100n)

【代码】: