
数据结构与算法
好的代码一定有好的思想,好的思想离不开好的算法
明智说
不慌不忙,做个技术小流氓!欢迎关注我的公众号,微信搜索:明智说,专注分享各种框架源码,中间件技术,MySQL,JVM等等。
展开
-
数据结构 | 再也不怕被问栈跟队列了
在之前的文章中,我们已经学习过了数组,链表两种最为基础的数据结构,并且花了很大的精力去分析了链表的应用,到现在我们可以开始学习基于这两种数据结构之上的其他数据结构啦,这篇文章将主要介绍栈跟队列,加油!给自己,也给正在阅读本文的你!(数据结构与算法|目录汇总) 文章目录栈:概念:栈的实现:队列:概念:队列的实现:为什么需要队列跟栈这些数据结构? 栈: 概念: 百度百科: 栈(stack)又名堆...原创 2019-08-13 00:52:24 · 472 阅读 · 0 评论 -
算法 | 链表的应用,缓存失效算法
我们知道,缓存是一种提高数据读取性能的技术,在硬件涉及,软件开发中有着非常广泛的应用。在使用缓存时我们最大的问题就是缓存的数据是不能太多的,当缓存被占满时,我们如何决定哪些数据被清除,哪些数据被保留呢?这个时候,我们就会采用一些缓存失效算法来处理。今天这篇文章我们就一起学习下常见的缓存失效算法通过链表如何实现。 文章目录先进先出策略(FIFO,First In First Out)最少使用策略...原创 2019-08-11 12:41:31 · 704 阅读 · 0 评论 -
算法 | 链表的应用,约瑟夫问题
在上篇文章我们已经对链表这种数据结构做了介绍,这篇文章我们主要通过几个链表实际应用的例子来进一步学习链表的相关知识 本文虽然主讲链表,但是对于涉及到的问题不仅仅会通过链表的方式解决,还会提供其他解法供读者思考 文章目录约瑟夫问题:自定义链表实现递归及公式推导:对于递归的思考:思考题答案: 约瑟夫问题: 自定义链表实现 首先,我们看下什么是约瑟夫问题? 有 M 个人,其编号分别为 1-M。这 ...原创 2019-08-10 11:02:25 · 700 阅读 · 2 评论 -
数据结构 | 再也不怕被问链表了
在上篇文章我们已经简单介绍过了数组,分析过了《数组为什么这么快》,相比于数组,链表是一种稍微复杂点的数据结构。掌握起来比数组也稍微难一些,不过不要怕,跟着我一起来,相信我们可以一步步拿下数据结构跟算法,今天我们先从链表开始,加油!!! 文章目录数组跟链表的区别:内存分布区别:增删,查询的时间复杂度区别:单链表:双链表:循环链表: 数组跟链表的区别: 首先,我们对比下数组跟链表的区别 内存分布区...原创 2019-08-06 00:58:56 · 3151 阅读 · 5 评论 -
数据结构与算法 | 总结篇
为方便大家阅读,所以将《数据结构与算法》专栏目录进行一次整理: 该文章会随专栏一起更新 专栏目录如下: 基础篇: 算法| 再也不怕被问时间复杂度了 (上) 算法| 再也不怕被问时间复杂度了 (下) 数据结构| 数组为什么这么快? 数据结构 | 再也不怕被问链表了 算法 | 链表的应用,约瑟夫问题 算法 | 链表的应用,缓存失效算法 数据结构 | 再也不怕被问栈跟队列了 ...原创 2019-08-05 23:12:44 · 1452 阅读 · 6 评论 -
数据结构|数组为什么这么快?
我相信在很多地方,大家在进行数据结构的比较的时候,说到数组,第一反应就是—快,但是为什么快呢?数组到底快在哪里呢?不知道大家是否有思考过这个问题,这篇文章,我就讲讲我对数组的一些看法,抛砖引玉,希望大家多多交流! 文章目录数组到底哪里快?查找快吗?为什么数组能支持随机访问呢?答案:举例分析: 我们要分析的第一个问题是: 数组到底哪里快?查找快吗? 可能有的同学第一反应利用数组进行查找的话,时间...原创 2019-07-31 01:20:56 · 3152 阅读 · 2 评论 -
算法| 再也不怕被问时间复杂度了 (下)
在上篇文章再也不怕被问时间复杂度了 (上),我们已经学习了为什么要进行时间复杂度分析,同时已经学习了如何进行时间复杂度的分析,这篇文章我们进一步学习时间复杂度的相关内容 文章目录最好情况时间复杂度,最坏情况时间复杂度平均情况时间复杂度均摊时间复杂度总结: 最好情况时间复杂度,最坏情况时间复杂度 我们看一个例子: // 这段代码是为了在数组中找到n第一次出现的下标 public int find...原创 2019-07-29 01:08:27 · 1151 阅读 · 0 评论 -
算法| 再也不怕被问时间复杂度了 (上)
如果说算法是程序员的根本,那么时间复杂度就是算法的根本,所以在学习算法前,我们一定要先学会如何分析一个算法的时间复杂度 文章目录为什么需要复杂度分析?如何对一个算法进行复杂度分析?在这里我们先解释第二个问题,什么是大O?几种简单的时间复杂度:稍微复杂点的时间复杂度:结尾: 为什么需要复杂度分析? 可能对于第一次接触这个概念的同学来说,第一个问题就是,我为什么要需要这个东西呢?我把代码跑一次,统...原创 2019-07-27 00:56:22 · 3052 阅读 · 8 评论