11 2019 档案

摘要:通过上篇博客知道,二叉搜索树的局限在于不能完成自平衡,从而导致不能一直保持高性能。 AVL树则定义了平衡因子绝对值不能大于1,使二叉搜索树达到了严格的高度平衡。 还有一种能自我调整的二叉搜索树, 红黑树 : 通过标记节点的颜色(红/黑),使其拥有自平衡的二叉搜索树。 红黑树性质 : 性质1:每个节点 阅读全文
posted @ 2019-11-28 17:03 Duikerdd 阅读(308) 评论(0) 推荐(0) 编辑
摘要:先说说二叉搜索树: 是有序的二叉树,根值>左节点值,右节点值>根值。 如果要查找某个值,二叉搜索树和二分查找一样,每进行一次值比较,就会减少一半的遍历区间。 但是,如果树插入的值一直递增/递减,就会出现这种情况: 这样,二叉树性能就完全失去了,直接退化成了顺序表,查找效率低下。 由此,引入了能保持性 阅读全文
posted @ 2019-11-27 13:16 Duikerdd 阅读(285) 评论(0) 推荐(0) 编辑
摘要:1.现代计算机CPU只会从内存中读取数据,硬盘的数据通过DMA(IO设备直接与内存数据交换)的方式与内存打交道。 2.CPU总线(BUS)周期: T1:向bus发送地址,寻址 T2:bus上撤销地址,准备接受数据 T3:数据读入到数据总线 T4:结束总线周期 电脑主频越高,时钟周期越短,耗时短从而显 阅读全文
posted @ 2019-11-23 13:32 Duikerdd 阅读(158) 评论(0) 推荐(0) 编辑
摘要:堆排其实就是选择排序,只不过用了完全二叉树特性。 堆排思想 : 利用完全二叉树特性建堆和重复选择调整来得到有序数组。 完全二叉树有什么特性呢? 节点左对齐 > 层序遍历不会出现空,可以用数组表达(访问效率高) 那么可以将它映射到数组上,并且遵循一个规律: 设i为当前节点索引, i->left = 2 阅读全文
posted @ 2019-11-16 16:18 Duikerdd 阅读(185) 评论(0) 推荐(0) 编辑
摘要:在线程并发执行的时候,我们需要保证临界资源的安全访问,防止线程争抢资源,造成数据二义性。 线程同步: 条件变量 为什么使用条件变量? 对临界资源的时序可控性,条件满足会通知其他等待操作临界资源的线程,类似信号。 场景:T-DAY展会排队参观/生产者消费者模型 条件变量是什么? 是一种同步机制,一个线 阅读全文
posted @ 2019-11-12 15:47 Duikerdd 阅读(324) 评论(0) 推荐(0) 编辑
摘要:相同点: 都是IO多路转接,都是一个线程能同一时间等待一堆描述符 不同点: 1.select接口使用不方便,每次调用完select都需要重新设置fd_set,因为输入输出未分离,返回的fd_set会将未就绪的fd清空; epoll接口使用方便,采用事件结构方式监控,简化了对多个监控结合的操作 , 输 阅读全文
posted @ 2019-11-11 13:05 Duikerdd 阅读(1487) 评论(0) 推荐(0) 编辑
摘要:什么是多态? 多态就是不同对象对同一行为会有不同的状态。(举例 : 学生和成人都去买票时,学生会打折,成人不会) 实现多态有两个条件: 一是虚函数重写,重写就是用来设置不同状态的 二是对象调用虚函数时必须是指针或者引用 ps:没有这两个条件无法构成多态,很多笔试题都会利用这个陷阱让你上当! 实际上, 阅读全文
posted @ 2019-11-05 11:24 Duikerdd 阅读(4608) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示