摘要: 完全二叉树的节点有n个 如果n为偶数,则n1 = 1 (n1代表度为1的节点) 如果n为奇数,则n1 = 0 n0 = n2+1 n1 + n2 + n2+1 = n 可以求得n2 则 2**(h-1) - 1 = n2 可以求得高度h 阅读全文
posted @ 2021-12-02 09:34 不想拖累他人 阅读(227) 评论(0) 推荐(0)
摘要: mysql索引失效 最左前缀原则,比如索引的数据结构是b+树 b树特点:根节点至少两个子女, 中间节点包含k-1的元素和k个子节点 每个叶子节点包含k-1个元素 所有叶子节点位于同一层 每个节点的元素从小到大排列,节点中k-1个元素正好是k个孩子包含的值域划分 b+树是b树的变种 叶子节点包含所有中 阅读全文
posted @ 2021-11-30 22:04 不想拖累他人 阅读(28) 评论(0) 推荐(0)
摘要: 两点: 1.数据库存储数据量较多的时候,b+树高度稳定,多为3,而红黑树高度则肯定大于3,而对于数据读取来讲,高度一般决定乐磁盘io的次数,磁盘io次数越少则效率越高。 2.支持范围查找,比如叶子节点数据好比是一个双向链表,这样查找的时候就可以范围查询,而红黑树并不可以。 MVCC: 多版本并发控制 阅读全文
posted @ 2021-11-21 10:07 不想拖累他人 阅读(104) 评论(0) 推荐(0)
摘要: 消息队列概念: 生产者:字面意思 生产消息,消息的实例化 消费者:消息逻辑处理 broker:消息的存储,以及队列中其他一些功能的添加,核心的部分 应用场景:1.异步处理:发送验证码 2.应用解耦:比如订单系统,库存系统,积分系统 各类系统可采用不同的一些框架语言,增加系统灵活度 3.流量削峰:大流 阅读全文
posted @ 2021-11-21 09:22 不想拖累他人 阅读(38) 评论(0) 推荐(0)
摘要: 1.同一个机器下的线程通讯(共享内存),不同机器下的线程通讯(基于网络) 2.通过共享内存来进行通信,则需要考虑并发问题 3.java中的关键字 4.通过网络,网络连接发送,各种加锁机制来避免冲突。 并发编程三要素: 1.原子性 2.有序性 3.可用性 阅读全文
posted @ 2021-11-18 09:35 不想拖累他人 阅读(49) 评论(0) 推荐(0)
摘要: 1.管道模型:命名模型:以文件形式存在 匿名管道:Linux命令行,前一个命令的输入,是后一个命令的输出。 2.消息队列:队列,多线程 3.共享内存+信号模型(信号量) 一般不会单独出现:访问同一片存储空间,减少复制什么的,容易造成内存冲突,就是类似于加锁同一时间只能一个访问 4.信号:类似报警,出 阅读全文
posted @ 2021-11-18 09:23 不想拖累他人 阅读(31) 评论(0) 推荐(0)
摘要: 关于tcp 服务器端: import socketf1 = socket.socket(socket.AF_INET,socket.SOCK_STREAM)f1.bind(("127.0.0.1",8080))f1.listen(5)while True: try: conn,client_addr 阅读全文
posted @ 2021-11-18 01:14 不想拖累他人 阅读(94) 评论(0) 推荐(0)
摘要: 基本数据类型:python可变数据类型:数字,字符,元组 不可变数据类型:列表,字典,集合 元组,列表:列表可以增加,删除,修改,动态 可变数据类型 元组内部数据一旦创建就不可改变 不可变数据类型 再往深了说就是底层回收机制的事了,缓存(列表个数) 元组缓存(元组内元素数量来限定) 深浅拷贝:深浅拷 阅读全文
posted @ 2021-11-15 15:41 不想拖累他人 阅读(42) 评论(0) 推荐(0)
摘要: python的 b / a 会向下取整, 比如 -1 / 132 = -1。 题目要求是取整数部分,那么负数的时候,实际应该是向上取整, 解决方法: int(b / float(a)) 阅读全文
posted @ 2021-10-15 21:53 不想拖累他人 阅读(348) 评论(0) 推荐(0)
摘要: 异或运算,就是 a ^ b 如果两值相同 则返回0 不同则为1 阅读全文
posted @ 2021-09-26 21:02 不想拖累他人 阅读(16) 评论(0) 推荐(0)