编码技巧之算法复杂度【笔记】
算法复杂度
抽象来说
具体来说
对这些抽象和具体有了一些概念以后,就可以看一些结构情况了
像是O(N^2)(插入排序,选择排序)
像是O(NlogN)(归并排序,快速排序(平均))
算法的组合
先用一种算法来计算,再使用另一种算法来计算,最后怎么求这种情况的算法复杂度?
例如,区间合并,给定一个区间,合并它们
输入为【1,3】【4,7】【2,6】【9,10】【8,9】
输出为【1,7】【8,10】
假设先排序的算法复杂度为O(NlogN),扫描已排序的列表为O(N),这样得出来的总复杂度为O(NlogN)
从递归来看,有三个问题可以确定这个程序的算法复杂度
每个结点都访问一次吗?
输出多少东西?
每个结点访问的时间是常数吗?