摘要:
1.线程是否要锁住同步资源:锁住 悲观锁;不锁住 乐观锁 2.锁住同步资源失败线程是否要阻塞:不阻塞 自旋锁/适应性自旋锁 3.synchronized关键字优化之后的几个状态流转:无锁-->偏向锁-->轻量级锁-->重量级锁 4.多个线程竞争锁时是否排队:排队--公平锁;先尝试插队(直接抢锁)插队 阅读全文
摘要:
问题: 假设有3亿个整数(范围0-2亿),如何判断某一个数是否存在。局限条件一台机器,内存500m。 常规的思路:我们可以将数据存到一个集合中,然后判断某个数是否存在;或者用一个等长的数组来表示,每个数对应的索引位置,存在就标记为1,不存在0。当然如果设备条件允许,上面的这方案是可行的。 但是现在我 阅读全文
摘要:
堆树介绍: 之前在二叉树的时候说到过一种特殊的二叉树 完全二叉树(除了最后一层,其他层的每个结点都是满的,且最后一层结点全部靠左排列,这样就可以很方便的用数组来表示,下标从0开始如果父结点索引是i那么它两个子结点的索引就是2i+1和2i+2,具体的图解见二叉树)。而堆树又是一种特殊的完全二叉树。它的 阅读全文
摘要:
我们经常会用到文件压缩,压缩之后文件会变小,便于传输,使用的时候又将其解压出来。为什么压缩之后会变小,而且压缩和解压也不会出错。赫夫曼编码和赫夫曼树了解一下。 赫夫曼树: 它是一种的叶子结点带有权重的特殊二叉树,也叫最优二叉树。既然出现最优两个字肯定就不是随便一个叶子结点带有权重的二叉树都叫做赫夫曼 阅读全文
摘要:
服务器是之前已经购买了的 1.腾讯云产品中搜索域名注册(产品太多了懒得找,直接搜索来得快些) 2.进去之后可以选择各种后缀的域名,输入自己喜欢的,看看哪些后缀是没有被注册的。自己挑选一个就可以,按照指导给付钱就行了。看见有个xyz后缀的,刚好是三维坐标系,就随手搜了下三维时代,然后就注册了这个。 3 阅读全文
摘要:
mysql索引数据结构:https://www.cnblogs.com/nijunyang/p/11406688.html 几种树结构的对比: 二叉查找树:二叉搜索树,二叉排序树,优点查找快,但是在某些情况下会退化成链表,它是所有高效查找树的基础 红黑树:内存查找高效树,不适合大数据量 也不适合磁盘 阅读全文
摘要:
前面我们说到的二叉查找树,可以看到根结点是初始化之后就是固定了的,后续插入的数如果都比它大,或者都比它小,那么这个时候它就退化成了链表了,查询的时间复杂度就变成了O(n),而不是理想中O(logn),就像这个样子 如果我们有一个平衡机制,让这棵树可以动起来,比如将4变成根结点,是不是查询效率又可以提 阅读全文
摘要:
二叉树查找树: 二叉查找树也叫二叉搜索树,二叉排序树。它也是一种特殊的二叉树, 它具有以下特点 1.如果它的左子树不为空,则左子树上结点的值都小于根结点。 2.如果它的右子树不为空,则右子树上结点的值都大于根结点。 3.子树的子树同样也要遵循以上两点 为什么又叫做二叉排序树,因为具有这种特殊特点的二 阅读全文
摘要:
树是一种一对多的数据结构,之前的数组,栈这些都是一对一的数据结构。 树是n个结点的有限集。n=0称空树。在任意一棵非空树中:有且仅有一个根(root)结点;n>1时,其余结点可分为m个互不相交的的有限集,其中每个集合又是一棵树,称为根的子树。 前面三个都是树,最后一个不是树,因为最后一个的数据相交了 阅读全文
摘要:
贪心算法顾名思义在一个贪字上面,它在解决某个问题的时候,总是先从眼前利益出发。也就是说只顾眼前,不顾大局,所以它是局部最优解。它的核心的就是局部最优推出全局最优。 比如公司只有一个会议室,明天有几场同样的重要的会议要开,怎么安排会议才能尽可能的多开会。 如果我们将所有会议的结束时间从小到大排序。然后 阅读全文