Wesley13 Wesley13
2年前
java小白到架构师技术图谱(整理全网,持续更新)
本文整理于github上各大star大神仓库。并根据自己的理解重新进行了整理本文已经收录于https://github.com/fengdongdongwsn/architectjava一、计算机基础1、数据结构(1)基本数据结构数据结构基本概念(时间复杂度和空间复杂度的计算方法)
如何有效的解决代码的圈复杂度
不管小型公司还是大型互联网公司,很多项目债台高筑,新功能开发困难。其中一个很大的原因就是代码复杂,可读性差。Sonar开发团队曾上纲上线的戏称开发人员的7宗罪,其中很关键的一条就是“复杂度”。那复杂度有没有一个明确的衡量标准,我们又如何去解决代码的圈复杂度呢?今天我在这里和大家聊一下。
Stella981 Stella981
2年前
Python常用操作的复杂度
  我们前面讲过list、deque、堆、字典树等高性能计算的技巧,这一节我们来整理一下Python中常用操作的时间复杂度。本文中的N表示容器的元素数量,K表示参数中元素的数量或参数的值。listlst  list(range(10,20))l1  list(range(100,105))操作时间复杂度描述
可莉 可莉
2年前
10亿个数中找出最大的10000个数(top K问题)
这个问题还是建立最小堆比较好一些。    先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样,遍历完后,堆中的10000个数就是所需的最大的10000个。建堆时间复杂度是O(mlogm),算法(https://www.oschina.net/action
Wesley13 Wesley13
2年前
UOJ 176 新年的繁荣
挺妙的解法。发现边权很小,我们可以考虑从大到小枚举边权来进行$kruskal$算法,这样子对于每一个边权$i$,我们只要枚举$0\\leqj<m$,找到一个点使它的点权为$i|2^j$,尝试连边即可。另外,如果同一个点权重复出现,一定有办法使这个边权连满,这样子直接累加到答案里就可以了。时间复杂度$O(m\2^m)$,再套一个并
Stella981 Stella981
2年前
Splay和LCT的复杂度分析
$Splay$的复杂度分析不论插入,删除还是访问,我们可以发现它们的复杂度都和$splay$操作的复杂度同阶,只是一点常数的区别我们不妨假设有$n$个点的$splay$,进行了$m$次$splay$操作采用势能分析我们记$w(x)\\left\\lceil\\log\_2(size(x))
Wesley13 Wesley13
2年前
51Nod1709 复杂度分析
似乎好久没发过博客了哎……好不容易有空写道题了,发个博客骗点访问量传送门(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.51nod.com%2FonlineJudge%2FquestionCode.html%23%21problemId%3D1709)出题人的做法是$O
京东云开发者 京东云开发者
9个月前
时间复杂度为 O(nlogn) 的排序算法 | 京东物流技术团队
归并排序归并排序遵循分治的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题,然后合并这些子问题的解来建立原问题的解,归并排序的步骤如下:划分:分解待排序的n个元素的序列成各具n/2个元素的两个子序列,将长数组的排序问题转换为短数
京东云开发者 京东云开发者
1星期前
业务复杂度治理方法论--十年系统设计经验总结
一、复杂度综述1、什么是复杂度软件设计的核心在于降低复杂性。\《软件设计的哲学》业界对于复杂度并没有统一的定义,斯坦福教授JohnOusterhout从认知负担和工作量方面给出了一个复杂度量公式子模块的复杂度cp乘以该模块对应的开发时间权重值tp,累加后得