排序函数
1.std::sort (不稳定排序,时间复杂度为O(n log n))
std::vector<int> list; std::sort(list.begin(),list.end()); // 默认升序 std::less<int>(); std::sort(list.begin(),list.end(),std::greater<int>()); // 降序 auto cmp = [](int x,int y){return x<y;}; std::sort(list.begin(),sort.end(),cmp); // 自定义比较函数
2.std::stable_sort(稳定排序,时间复杂度为O(n log n),排序时有相同的比较值元素,可以保证每次排序结果一致,代价是额外的空间复杂度)
1 struct Obj 2 { 3 int index=0; 4 std::string name; 5 } 6 7 std::vector<Obj> objects; 8 objects.emplace_back(2,"test2"); 9 objects.emplace_back(2,"test3"); 10 objects.emplace_back(3,"test4"); 11 12 std::stable_sort(objects.begin(),objects.end(),[](const auto &obj1,const auto &obj2){return obj1.index < obj2.index;}):
3.std::partial_sort(部分排序,时间复杂度为O(n log n),不稳定排序)