
算法
文章平均质量分 78
干货很多的大飞
前美团项目高级研发工程师,北京道隆华尔项目负责人
展开
-
Java树结构实际应用(平衡二叉树/AVL树)
平衡二叉树(AVL 树)1 看一个案例(说明二叉排序树可能的问题)给你一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST), 并分析问题所在.左边 BST 存在的问题分析:1) 左子树全部为空,从形式上看,更像一个单链表.2) 插入速度没有影响3) 查询速度明显降低(因为需要依次比较), 不能发挥 BST的优势,因为每次还需要比较左子树,其查询速度比单链表还慢4) 解决方案-平衡二叉树(AVL)2 基本介绍1) 平衡二叉树也叫平衡二叉搜索树(Sel原创 2021-03-16 17:57:14 · 495 阅读 · 0 评论 -
冷淡的面试官,让我手写LRU缓存淘汰算法打发时间
背景在我们这个日益追求高效的世界,我们对任何事情的等待都显得十分的浮躁,网页页面刷新不出来,好烦,电脑打开运行程序慢,又是好烦!那怎么办,技术的产生不就是我们所服务么,今天我们就聊一聊缓存这个技术,并使用我们熟知的数据结构--用链表实现LRU缓存淘汰算法。在学习如何使用链表实现LRU缓存淘汰算法前,我们先提出几个问题,大家好好思考下,问题如下:什么是缓存,缓存的作用? 缓存的淘汰策略有哪些? 如何使用链表实现LRU缓存淘汰算法,有什么特点,如何优化?好了,我们带着上面的问题来学进行下面的学原创 2021-03-03 20:57:51 · 421 阅读 · 1 评论 -
收藏了!Java程序员提升核心竞争力,“数据结构”不得啃一口?
数据结构分类数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等,如图所示:每一种数据结构都有着独特的数据存储方式,下面为大家介绍它们的结构和优缺点。1、数组数组是可以在内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始。例如下面这段代码就是将数组的第一个元素赋值为 1。int[] data = new int[100];da原创 2020-11-06 22:29:18 · 135 阅读 · 0 评论