首先我们在OJ上做题的时候,题目会给出时间限制,一般来说,时间限制为1s;这就要求我们所涉及的算法时间复杂度不能超过百万级别,即不能达到一千万。如果算法时间复杂度为O(n^2),则该n不应该大于3000,否则机会达到我们所限制的千万数量级复杂度。举例来说,我们不能在1s的时间限制内对10000个整数进行冒泡排序,而必须使用快速排序等时间复杂度为O(nlog(n))的排序算法。而我们是否需要去记忆这些排序算法呢?实际上,C++已经编写了快速排序库函数,我们只需要在库函数声明#include<algorithm>就可调用排序函数——sort()函数了。
sort函数有三个参数:(sort(start,end,compare))
(1)第一个是要排序的数组的起始地址
(2)第二个是结束的地址(最后一位要排序的地址)
(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,如果不写第三个参数,此时默认的排序方法是从小到大排序。
例1:sort默认从小到大排序