stable_sort稳定排序
2013-10-15 10:26
204 查看
所谓稳定排序,是指对一个序列进行排序之后,如果两个元素的值相等,则原来乱序时在前面的元素现在(排好序之后)仍然排在前面。STL中提供stable_sort()函数来让我们进行稳定排序。为了更好的说明稳定排序的效果,我们定义了一个结构体元素,一个value成员和一个index成员,前者表示元素的值,后者表示乱序时的索引。
stable_sort()内部由归并排序来实现。
程序的运行结果如下图所示,可以看到,对于元素值相同的元素,索引小的在前面,稳定排序就是这么一个效果。
本文出自程序人生 >> STL
stable_sort 稳定排序
作者:代码疯子
stable_sort()内部由归并排序来实现。
//Coded by 代码疯子 //http://www.programlife.net/ #include <iostream> #include <vector> #include <algorithm> #include <iterator> using namespace std; typedef struct TagNode { int value; int index; }Node; bool myCmp(const Node& a, const Node& b) { return a.value < b.value; } int main(int argc, char **argv) { vector<Node> coll; Node tmp; int idx = 0, num; while(cin >> num && num) { ++idx; tmp.value = num; tmp.index = idx; coll.push_back(tmp); } stable_sort(coll.begin(), coll.end(), myCmp); cout << "Index\tValue:" << endl; vector<Node>::iterator pos; for(pos = coll.begin(); pos != coll.end(); ++pos) { cout << pos->index << "\t" << pos->value << endl; } return 0; }
程序的运行结果如下图所示,可以看到,对于元素值相同的元素,索引小的在前面,稳定排序就是这么一个效果。
本文出自程序人生 >> STL
stable_sort 稳定排序
作者:代码疯子
相关文章推荐
- STL stable_sort 稳定排序
- Aizu ALDS1_2_C Stable Sort(稳定排序)
- 【stable_sort稳定排序】
- 第三章 ALDS1_2_C:Stable Sort 稳定排序
- STL stable_sort 稳定排序
- hdu 1872 稳定排序(stable_sort)
- C ++ sort()与stable_sort()
- 【HDU1872】稳定排序(sort)
- algorithm库介绍之---- stable_sort()方法 与 sort()方法
- (原創) 如何使用stable_sort() algorithm? (C/C++) (STL)
- DNA Sorting(stable_sort)
- stl-stable_sort源码学习笔记
- stable_sort()
- Ural_1100. Final Standings(stable_sort)
- C++排序之stable_sort()的方法
- 泛型算法sort,fill,fill—n,stable—sort,accumulate
- 使用STL中的stable_sort()函数进行排序
- stable_sort() 和 sort() 的区别
- C++标准库---sort()&stable_sort
- stable_sort