您的位置:首页 > 其它

【stable_sort稳定排序】

2011-08-02 02:55 274 查看
今天刷ural的1100才发现原来有这么一个神奇的DD——stable_sort,作用是若有多个值,根据第三个参数来排序而不改变其他值的出现次序。。。呃,比较难明,自己慢慢体会吧
http://acm.timus.ru/problem.aspx?space=1&num=1100
#include <vector>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <string.h>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <limits.h>

using namespace std;

#define LL long long
#define pi acos(-1)
#define N  150010
#define INF INT_MAX
#define eps 1e-8
//*********************************************
//ural 1100
//*********************************************

struct node
{
int id;
int val;
}e
;
bool cmp(node a,node b)
{
return a.val>b.val;
}
int main()
{
//freopen("a.txt","r",stdin);
int n;
while(scanf("%d",&n)!=EOF)
{
int i,j;
for(i=0;i<n;i++)
scanf("%d%d",&e[i].id,&e[i].val);
stable_sort(e,e+n,cmp);//稳定排序,若相同,则不改变其出现顺序
for(i=0;i<n;i++)
printf("%d %d\n",e[i].id,e[i].val);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: