目录
017 二分查找Left Rightmost应用
最近邻居:前任和后任谁离target更近谁就是最近邻居
017 二分查找 e01 二分查找
补充理解 平衡版的二分查找:
else{i=m}这里,因为不走if的话,就说明有可能在右边也有可能就是它本身。因此,要i=m。不然就会漏掉m这个值的比较了。
017 二分查找 e02 搜索插入位置
之前已经分析过
017 二分查找 e03 搜索开始结束位置
之前已经分析过
018 数组 概述
019 动态数组 介绍
020 动态数组 插入
021 动态数组 遍历
第一种方法
第二种方法
第三种方法
022 动态数组 删除
023 动态数组 扩容
024 二维数组
二维数组:大的数组嵌套小的数组
025 数组 缓存与局部性原理
缓存的速度接近于CPU的速度,因此,CPU现在缓存中看有没有要查询的数据,如果有,直接返回,如果没有,还是得从内存中查询。直接从缓存中返回的话,效率会很高。因此缓存的存在意义就是加快读写速度。
而缓存从内存中读取的字节都是64个字节,不会4个4个这样读取的。64字节也称为缓存行。因此多出来的那些也称为空间局部性。
为什么第一种的读取速度这么快呢?因为,缓存是一行一行来的,它读完第一行的第一个元素之后,就会因为空间局部性把后面的也加载出来,从而,后面的这些元素就可以很快地读取出来了。那为什么第二种的读取速度这么慢呢?因为,它读完第一行的第一个元素之后,第一行的其他元素被加载出来了,但是却没有用到,就去读第二行的元素了,以此类推,当读了好几行之后,缓存存满之后,就要去释放没有用的东西,那再读出来的东西就会覆盖原来的缓存行。
026 链表 概述
027 单向链表 addFirst
节点:Node
028 单向链表 遍历
什么时候加static? 可以加的话,尽量加static。那什么时候不可以加呢?当用到外部的成员变量的时候,就不可以加static。当这部分是独立的,不和外部的成员变量产生联系的话,就可以加static。阿玮说过:静态只能调静态,非静态可以调所有