
分享
文章平均质量分 73
overflow_1
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
里氏替换原则以及IS-A关系的判定
相信许多人都看过GoF的设计模式以及各种设计模式的书籍。这些繁复的设计模式究竟是为了什么呢?这些设计模式为的是维护一组原则,这组原则使得代码灵活,可维护,远离所谓的“代码臭味”。 这组原则就是SOLID SingleResponsibilityPrinciple单一职责原则 Open-Close Principle开闭原则 Liskov Substitution Principle里氏替换原则 ...原创 2021-09-15 17:02:12 · 265 阅读 · 0 评论 -
一种比较直观地推断递归算法时间复杂度的思路
用快速排序举例问题规模为N递归第一层为 N递归第二层 分成两个分区,每个分区的规模为 N/2 (取平均值1/2)...因为递归一直二分,所以,到了logN层,分无可分。每一层其实都要遍历整个数组,所以每一层都是时间复杂度都是O(n),乘以层数,得到总体的时间复杂度O(logn*n)再看看用这种快排的方法解Top K的时间复杂度问题问题规模为N递归第一层为N递归第二次,分成两个分区,取平均值,每个分区为N/2, 但是丢弃一个分区递归第三次次,剩下的分区分成两个分原创 2021-08-23 23:08:11 · 140 阅读 · 0 评论 -
Raft 实现原理与踩坑指南
前言 因为学习了MIT6.824课程,我对于raft这个分布式算法感到很有兴趣,它宣称自己是容易理解的分布式共识算法,相比之前广泛应用的Paxos,Raft的描述使用的是工程化的语言,引入了RPC,Log等易懂的概念,使得它更加容易被理解。 但是容易被理解并不等于就可以简单地实现正确,实际上,正确地实现Raft ——甚至只是课程中那个非工业级的,完全按照paper中叙述的那种简单版 ——也是极为困难的。因为分布式共识算法中一点细节不对,就可能会对整个系统的安全性和活...原创 2021-07-27 18:29:11 · 1077 阅读 · 0 评论 -
c++在对象的构造时做了什么手脚?——《深度探索c++对象模型》阅读笔记之一
前言 《深度探索c++对象模型》是《c++ primer》的作者Lippman所写的一本书,Lippman从自己参与开发cfront的经历出发,深度剖析了c++中对象的相关特性是如何被实现的。 这本书相对其他的各种c++特性解读,用法,最佳实践的书来说,相对艰深晦涩,其面对的也不是刚入门的C++ 学习者,而是想要了解C++在幕后做了什么的人。 这本书的作用应当是消除程序员脑海中的不确定性,揭开C++对象表面的魔法。一个对象,其定义, 创建,调用方法,析构等等,编译器有为你做了什么,又没做什原创 2021-07-27 12:17:14 · 157 阅读 · 0 评论 -
透视变换的实现以及透视变换矩阵的构造
透视变换(Perspective Transformation)是什么,无需多说,但是一个非常惨痛的现实是如果你想知道怎么样才能在编程做,你只能得到一些调用opencv函数的文章,简直有病,谁不会调用函数,我搜索实现肯定是要找代码参考看下是怎么实现算法的,你调用函数还敢叫自己“实现”?那我用调用Django的模块是不是实现了后端框架的开发啊? 言归正传,要了解透视变换...原创 2018-05-15 23:50:39 · 27279 阅读 · 22 评论