摘要:
小和问题和逆序对问题是归并排序的算法的延伸应用,这篇博客将实现小和问题和逆序对问题的求解 小和问题 在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和,求一个数组的小和 时间复杂度 O(N*logN),空间复杂度 O(N) 代码示例 import java.util.Arrays; 阅读全文
摘要:
递归的定义 定义:递归算法是一种直接或者间接调用自身函数或者方法的算法。 通俗来说,递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。它有如下特点: 一个问题的解可以分解为几个子问题的解 这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样 存在递归终 阅读全文
摘要:
1.归并排序详解 1.1核心思想 归并排序是一种基于分而治之的排序技术。最坏情况下的时间复杂度为O(nlogn),它是最受人尊敬的算法之一。归并排序首先将数组分成相等的两半,然后以排序的方式将它们合并。 为了理解合并排序,我们采用未排序的数组,如下所示我们知道归并排序首先将整个数组迭代地分成相等的一 阅读全文
摘要:
事务的ACID特性 Atomic(原子性)所有语句作为一个单元全部成功执行或全部取消。不能出现中间状态。 Consistent(一致性)如果数据库在事务开始时处于一致状态,则在执行该事务期间将保留一致状态。 Isolated(隔离性)事务之间不相互影响。 Durable(持久性)事务成功完成后,所做 阅读全文
摘要:
innodb_flush_log_at_trx_commit 提交事务的时候将 redo 日志写入磁盘中,所谓的 redo 日志,就是记录下来你对数据做了什么修改,比如对 “id=10 这行记录修改了 name 字段的值为 xxx”,这就是一个日志。如果我们想要提交一个事务了,此时就会根据一定的策略 阅读全文
摘要:
前言 通常来说SQL优化指的都是查询优化,但是最坑的是我们的对手 遇不安套路出牌,很多挑战通常不能用SQL技巧解决。 分析影响性能的原因 影响SQL性能的原因有很多,最令人头疼的是需求侧。业务方不关心你的sql怎么写,他们只要结果,甚至有些时候技术端也会出一些奇葩的要求。 架构侧导致的问题也挺多的, 阅读全文
摘要:
mysql中PK和UK分别是unique key 和primary key,两种有些区别:主键值必须是唯一且非空的;唯一键必须唯一但是可以为空。 select id,name where name=‘shenjian’ select id,name,sex where name=‘shenjian’ 阅读全文
摘要:
出现的错误: ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction 解决办法: 查看sleep的进程 mysql> show full processlist; + + + + + + + + + | I 阅读全文
摘要:
JAVA 内存运行时区域中的程序计数器、虚拟机栈、本地方法栈随线程而生灭,栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(尽管在运行期会由 JIT 编译器进行一些优化),因此这几个区域的内存分配和回收都具备确定性,不需要过多 阅读全文
摘要:
回调的含义和用途 什么是回调? 一般来说,模块之间都存在一定的调用关系,从调用方式上看,可以分为三类:同步调用、异步调用和回调。同步调用是一种阻塞式调用,即在函数A的函数体里通过书写函数B的函数名来调用之,使内存中对应函数B的代码得以执行。异步调用是一种类似消息或事件的机制解决了同步阻塞的问题,例如 阅读全文