STL之stable_sort与sort
2015-04-10 17:57
344 查看
这两个函数都能完成排序,时间复杂度在所有的排序中也是最低,唯一的差别就是stable_sort是一种稳定的排序,在两个元素相同的时候不交换位置,而sort则不然,这个差别在单一普通数组排序中没影响,但是如果对结构体进行排序的话就会有明显差别。具体参照 POJ 1007
点击打开题目链接 这道题就是用普通的sort会改变结构体的相对位置,放上
AC代码:
点击打开题目链接 这道题就是用普通的sort会改变结构体的相对位置,放上
AC代码:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int len; struct node { char s[55]; int score; }p[110]; bool cmp(const node a, const node b) { return a.score < b.score; } int sum(char *p) { int len, sum; sum = 0; len = strlen(p); for(int i = 0; i < len; ++i) { for(int j = i + 1; j < len; ++j) { if(p[i] > p[j]) sum++; } } return sum; } int main() { int num; char s[110]; while(scanf("%d%d", &len, &num) != EOF) { for(int i = 0; i < num; ++i) { scanf("%s", p[i].s); p[i].score = sum(p[i].s); } stable_sort(p, p + num, cmp); //稳定排序,等值不交换 for(int i = 0; i < num; ++i) printf("%s\n", p[i].s); } return 0; }
相关文章推荐
- stl-stable_sort源码学习笔记
- STL stable_sort 稳定排序
- STL中的排序算法 sort stable_sort patition_sort等
- STL_算法_对全部元素排序(sort、stable_sort)
- (原創) 如何使用stable_sort() algorithm? (C/C++) (STL)
- STL stable_sort 稳定排序
- STL中的排序算法 sort stable_sort patition_sort等
- 如何使用stable_sort() algorithm? (C/C++) (STL)
- STL中的排序算法 sort stable_sort patition_sort等
- STL_算法_对所有元素排序(sort、stable_sort)
- stl-stable_sort源码学习笔记
- STL 之 stable_sort 将牌从大到小排序
- STL_算法(27)_对所有元素排序sort(b, e) sort(b, e, p) stable_sort(b, e) stable_sort(b, e, p)
- 【STL】stable_sort !!!
- 使用STL中的stable_sort()函数进行排序
- STL算法之sort和stable_sort
- STL中的排序算法 sort stable_sort patition_sort等
- stl-stable_sort源码学习笔记
- STL_算法_局部排序(partial_sort、partial_sort_copy)
- STL 中sort源码分析