C++sort 函数小总结

1. 概念
昨天踩坑了,今天来总结一下sort函数的用法,sort函数是C++的STL里面的一个强大的算法,是用来处理容器的非成员函数。它接受两个RandomAccessIterators(随机存取迭代器),然后将区间内的所有元素以渐增方式由小到大排序。另外一个版本则可以指定排序标准。

2. 适用模板类概览【此部分参考《STL源码剖析》,摘录,有略微表达不同】
a) STL的所有关联性容器(例如map,set等)都有自动排序的功能(底层采用红黑树的结构),所以不需要用到sort算法。
b) 序列式容器中的stack、queue和priority-queue有特殊的出入口,不允许用户对元素排序。
c) 序列式容器中的vector、deque和list,前两者迭代器属于随机存取迭代器,适用,而list的迭代器为双向迭代器,不适用,如果要对list进行排序,可以使用它自己提供的成员函数sort()。

3. 实现方法
数据量大的时候采用Quick Sort,分段递归排序。一旦分段后的数据量小于某个门槛,为避免Quick Sort的递归调用带来过大的额外符合,就该用Insertion Sort。如果递归层次太深,还会改用Heap Sort。

4. 使用方法(举例说明)


  • 题目:
    若干足球队比赛。
    积分规则:平局,各得1分,赢得3分,输不得分,不扣分。
    排名规则,按照以下顺序依次比较确定排名先后:
    (1)积分高的队伍排名靠前;
    (2)总净胜球数(总进球数-总失球数)多的队伍排名靠前;
    (3)总进球数多的队伍排名靠前;
    (4)队伍名称字母序小者靠前。

  • 类数据成员设计
class team //或者用结构体 struct team也可以,这里实现程序比较小,所以不考虑C++的设计原则数据隐藏
{
publicstring name;
    int score;
    int win;
    int lose;
}
  • 待排序的数据

                
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值