选择排序 即每次遍历数组选出一个最小的 时间复杂度: n+(n-1)+(n-2)+(n-3)+...+1。约等于O(n^2) 快速排序/归并排序/选择排序 分而治之: 把一个...
选择排序 即每次遍历数组选出一个最小的 时间复杂度: n+(n-1)+(n-2)+(n-3)+...+1。约等于O(n^2) 快速排序/归并排序/选择排序 分而治之: 把一个...
引子 快速排序是一个很难记的概念,倒不是说排序方法难记,就是为什么叫快速排序,到底快在哪儿,说不清楚。 回味归并排序 数组对半分,不停对半分 直到数组长度为1,即已排好,因为...
引子 我常常会想解决算法问题的开始在哪里,难道是记下茫茫多的解决技巧,或者是熟悉于特定的编程语言,还是说题海战术? 可我们的精力能力有限,特别是平时工作并不是面向算法开发的,...
思路 在世上,人们解决问题的方式归为两种 人类思路:根据生活归纳出来的,人们根据生活经验,总结提炼 数学思路:根据数学推理归纳,通过对应的数学公式/定理,得出的结论 人类思路...
引子 顺序存储 假设有一个数组 [1,2,3,4,5], 是一个连续的内存地址 100 | #101 | #102 | #103 | #104 ---|--- | ---|-...
为什么需要多线程? CPU,这个世界慢死了 列出一些典型的时间周期: cpu:现在3.0GHZ的cpu一个指令周期为,0.3ns => 换算人类时间1s 内存:寻址时间大概在...
常用类包括但不限于: List Set Map List 最常用的就是ArrayList,其本质上就是一个数组 ArrayList是如何扩容的? 通过grow函数,创建siz...
首先,可能需要先了解一下JVM的工作原理 JVM的工作非常简单: 执行一个类的字节码,假如在这个过程中,碰到了新的类,那么加载它! 而我们执行 java命令时,使用了-cla...
哈希表 目的 提供一个存储结构, 其中存储的是Key-Value对, Key和Value可以是任意的类型类似于数组: 可以使用数组的下标索引(数字!!!!)去访问存储的数据!...
一、前言 缓存可以说是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。...
时间线顺序: PHP/JAVA/C# 程序员负责页面开发(table标签布局)政府网站,特别丑,左边一栏上面一栏右边一栏 后台 + 美工美工负责用PS P图,写出DIV+CS...
面向对象的两个概念 封装 封装(encapsulation)是指一种将类实现细节部分包装,隐藏起来的方法 封装方式: 类 对类的内部状态的访问进行控制,只提供应该提供的信息 ...
Java基本语法 着重记录了Java和JS间的不同概念, 持续更新中... 入口 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作 对象...
转自 https://segmentfault.com/a/1190000010201590 下面笔者将用SS5在亚马逊云服务器上的Linux搭建一台Socks5 Proxy...
写在前面 在大公司里, 你总是会被明确的分工到某个螺丝坑中,重复的拧着同一种型号的螺丝。 当然这里带来了利与弊, 弊端很明显, 就是无法再接触所谓的工作中学习,毕竟你一直做着...
MVC的故事 现在的前端学习者,会有一个断层,知识的断层,为什么vue, react 会出现,好像他一开始就出现在哪里一样 所谓的老前端,眼见这些年前端怎么发展,怎么逐步完善...
代码基本原则和优化技巧 目标: 让代码更可读,而不是让代码性能更高。 某些时候为了让代码性能更高,但是却更不可读了 基本原则 易读性, 性能瓶颈往往是网络 如果不是性能瓶颈,...
commitizen全家桶 标准化的git commig帮助你实现自动化changelog commitizen cz-conventional-changelog插件 阮一...
问题: 由于项目的版本线混乱, 导致可能需要在不同分支上切换, 而且某些功能也可能在不同分支上移动.一个版本可能有多个功能点, 一个版本又对应于一个分支, 如果一个功能点有多...