详见 :https://www.cnblogs.com/AlvinZH/p/6784862.html?utm_source=itdadao&utm_medium=referral
此处为学习的网址,写的十分详细,在此感谢作者~
总结了:
- sort实现原理及简介
(其实我主要是想去看sort实现原理,别的觉得好就记录下来了)
时间复杂度:n*lg(n)
实现原理:sort并不是简单的快速排序,它对普通的快速排序进行了优化,此外,它还结合了插入排序和推排序。系统会根据你的数据形式和数据量自动选择合适的排序方法,这并不是说它每次排序只选择一种方法,它是在一次完整排序中不同的情况选用不同方法,比如给一个数据量较大的数组排序,开始采用快速排序,分段递归,分段之后每一段的数据量达到一个较小值后它就不继续往下递归,而是选择插入排序,如果递归的太深,他会选择推排序。 - 扩展:
1)定义比较函数(最常用)
就重写个cmp1,cmp2(结构体)函数
2)使用标准库函数
升序:sort(begin,end,less<data-type>())
降序:sort(begin,end,greater<data-type>())
3)重载结构体或类的比较运算符
分内部重载和外部重载
4)声明比较类(少用)
网友评论