algorithm
文章平均质量分 85
Owen Wei
这个作者很懒,什么都没留下…
展开
-
`std::sort`源码分析之快速排序
std::sort源码分析之快速排序众所周知,快速排序分为三个部分,主元(pivot)选择,元素划分和递归。通常,我们应重点关注快速排序的主元选择和划分环节,这两个部分也是面试考察的高频考点。主元选择在《算法导论》中提到,主元选择会对快速排序的时间复杂度产生不可忽略的影响。选择一个好的主元,能提升快排的效率,而某些情况下,选择的主元会使快速排序的时间复杂度抵达下界——O(n2)O(n^2)O(n2)。在此问题上,通常的实现方法是从待排序的数组中抽取部分元素,并取中位数,以此避免最坏情况。虽然这种做法原创 2021-03-18 14:12:41 · 310 阅读 · 0 评论 -
浅析C++单例模式的实现
单例模式可以说是老生常谈的面试考点。从最经典的单例模式实现开始,我们逐步提供了多种单例模式的实现方式,并一一分析它们的优缺点。方案一:教科书经典方案使用一个静态指针管理对象, 当第一次需要时创建此对象。// 在此略去构造函数等无关代码,仅讨论单例模式本身class Singleton{public: static Singleton& getInstance(){ if(instance_ == nullptr) instance_ = ne原创 2021-01-14 21:53:18 · 302 阅读 · 0 评论