
算法基础知识
Matana111
这个作者很懒,什么都没留下…
展开
-
时间复杂度中O(log n) Log的底数是多少
其实这里的底数对于研究程序运行效率不重要,写代码时要考虑的是数据规模n对程序运行效率的影响,常数部分则忽略,同样的,如果不同时间复杂度的倍数关系为常数,那也可以近似认为两者为同一量级的时间复杂度。现在来看看为什么底数具体为多少不重要?读者只需要掌握(依稀记得)中学数学知识就够了。假设有底数为2和3的两个对数函数,如上图。当X取N(数据规模)时,求所对应的时间复杂度得比值,即对数函数对应的...转载 2018-11-02 10:14:50 · 2131 阅读 · 0 评论 -
排序 —— 合并排序
与很多有用的算法类似,合并排序基于这样一个技巧:将 2 个大小为 N/2 的已排序序列合并为一个 N 元素已排序序列仅需要 N 次操作。这个方法叫做合并。我们用个简单的例子来看看这是什么意思: 通过此图你可以看到,在 2 个 4元素序列里你只需要迭代一次,就能构建最终的8元素已排序序列,因为两个4元素序列已经排好序了:1) 在两个序列中,比较当前元素(当前=头一次出现的第一个) 2)...转载 2018-11-11 20:15:22 · 796 阅读 · 0 评论