随笔分类 -  数据结构和算法

摘要:树 平衡二叉树 ​ 二叉排序树最大的缺点就是无法保证平衡性,若极端情况可能退化成单链表,丧失二叉排序树的优点。因此平衡二叉树就是左子树和右子树的高度差(也叫平衡因子)不超过1。建树的时候要根据条件进行左旋和右旋。 ​ 平衡二叉树应用:AVL树(较早出现,调整代价大,windows进程地址空间管理)、 阅读全文
posted @ 2021-04-20 20:54 i%2 阅读(68) 评论(0) 推荐(0)
摘要:堆 ​ 堆可以说是特殊的数组,但具有(完全)二叉树的性质。一般使用堆都是使用2种:最大堆、最小堆。最小堆特点:任意一个节点值都比子节点值要小,且逐级递增。(大堆类似)。(若p为父节点,子节点访问:左2p+1,右2p+2)。根据堆的特点,因为有序性,其使用核心好处就是可以避免像普通数组一样徒劳的遍历。 阅读全文
posted @ 2021-04-20 20:53 i%2 阅读(74) 评论(0) 推荐(0)
摘要:海量数据处理 海量数据高频(topK)问题 解决思路: 分而治之,进行哈希取余; 使用 HashMap 统计频数; 求解最大的 TopN 个,用小顶堆;求解最小的 TopN 个,用大顶堆。 高频(topK)问题如: 有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是 阅读全文
posted @ 2021-04-20 20:51 i%2 阅读(77) 评论(0) 推荐(0)