
数据结构
王老师的技术小白
好好学习,天天向上。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构与算法之复杂度分析
其实,只要讲到数据结构与算法,就一定离不开时间,空间复杂度分析。复杂度分析时整个算法学习的精髓,只要掌握了它,数据结构和算法的内容基本上就掌握了一半。*一. 为什么需要复杂度分析你可能会有些疑惑,我把代码跑一遍,通过统计,监控就能得到算法的执行时间和占用的内存大小。为什么还要做时间和空间复杂度分析呢?这种分析方法能比我实实在在跑一遍得到的数据更加准确么?首先,这种方式是正确的,这种方法也叫事...原创 2019-03-22 23:38:08 · 323 阅读 · 0 评论 -
数据结构与算法之栈
当你依次访问完一串a-b-c页面之后,点击浏览器的后退按钮,就可以查看之前浏览的页面a和b。当你后退到页面a,点击前进按钮,就可以重新查看页面b和c。但是,如果你后退到页面b后,点击了新的页面d,就无法再通过前进后退功能查看页面c了。要实现上述功能,就需要用到“栈”这个数据结构。一. 简介“栈”是一种有特定规则的数据结构,当某个数据集合只设计在一端进行插入和删除数据的操作,并且满足后进先出,...原创 2019-04-01 19:08:50 · 909 阅读 · 0 评论 -
数据结构与算法之队列:队列在线程池等有限资源池中的应用
我们知道,CPU资源时有限的,任务的处理速度与线程个数并不是线性相关。相反,过多的线程反而会导致CPU频繁切换,处理能力下降。所以线程池的大小一般都是综合考虑要在处理任务的特点和硬件环境,来事先设置的。当我们向固定大小的线程池中请求一个线程时,如果线程池中没有空闲资源了,这个时候线程池如何处理这个请求?时拒绝请求还是排队请求?各种处理策略又是怎么实现的呢?实际上,这些问题并不复杂,其底层的数据...原创 2019-04-01 19:53:57 · 871 阅读 · 1 评论 -
数据结构与算法之递归
推荐注册返佣金的这个功能在很多App中都有。在这个功能中,用户A推荐用户B来注册,用户B又推荐了用户C来注册。我们可以说,用户C的”最终推荐人“为用户A,用户B的”最终推荐人“也是用户A。而用户A没有”最终推荐人“。一般来说,我们会通过数据库来记录这种推荐关系。在数据库表中,我们可以记录两行数据,其中actor_id表示用户id,referrer_id表示推荐人id。基于这个背景,我的问题是...原创 2019-04-01 20:24:09 · 292 阅读 · 0 评论 -
数据结构与算法之排序大全
数据结构与算法之排序一 线性排序桶排序:顾名思义,桶排序就是将数据放在一个个桶中,然后对每个桶进行单独排序,最后合并起来成为一个有序的列表。使用场景:适用于在特定数据中,将每个桶内的数据合并起来之后不需要再进行排序。比如在磁盘中存有10G数据,无法一次性读入内存,这时则需要将这些数据按照一定情况进行分组,再进行组内排序。计数排序:计数排序其实是桶排序的一种特殊情况,例如有n个数在区...原创 2019-04-16 22:35:47 · 464 阅读 · 0 评论 -
数据结构与算法之二分查找
假设我们有1000万个整数数据,每个数据占8个字节,如何设计数据结构和算法,快速判断某个整数是否出现在这1000万数据中?我们希望这个功能不要占用太多的内存空间,最多不要超过100M,你会怎么做?无处不在的二分思想二分查找时一种非常简单易懂的快速查找算法,生活中到处可见。比如说,我们现在来做一个猜字游戏。我随机写一个0到99之间的数字,然后你来猜我写的是什么。猜的过程中,你每猜一次,我就会告诉...原创 2019-04-24 10:03:46 · 187 阅读 · 0 评论