
数据结构与算法(Java版)菜鸟学习手册
文章平均质量分 86
可能是东半球最系统全面的一套讲述数据结构与算法(Java版)的系列教程 !
李阿昀
昀,三尺微命,一介书生。只当穷且益坚,不坠青云之志!
展开
-
数据结构与算法(Java版) | 教你如何使用环形数组来模拟队列
上一讲,我们就已经分析过了,使用数组来模拟队列的这种实现方式隐藏着一个很大的问题,即数组使用过一次之后便不能再使用了,也就是说压根就没有达到复用的效果。而要想解决这个隐患问题,那我们就得让数组能再次被复用了,也就是说如果我们从这个数组里面取出一个东东之后,那么空出的这个空间还能再次被使用。原创 2024-08-14 07:57:30 · 376 阅读 · 1 评论 -
数据结构与算法(Java版) | 详解十大经典排序算法之一:希尔排序
接下来,我来给大家讲解第四种排序算法,即希尔排序。原创 2024-05-20 16:11:29 · 586 阅读 · 0 评论 -
数据结构与算法(Java版) | 详解十大经典排序算法之一:插入排序
首先,我们来看下插入排序的基本介绍。插入排序,其属内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以便达到排序的目的。原创 2024-04-26 12:00:58 · 613 阅读 · 1 评论 -
数据结构与算法(Java版) | 详解十大经典排序算法之一:选择排序
首先,我们来看下选择排序的基本介绍。选择排序,它同样也属于内部排序,具体而言,就是从欲排序的数据中,按照指定的规则选出某一元素,然后再依照规定交换位置,以便达到排序的目的。原创 2023-12-08 21:57:27 · 572 阅读 · 0 评论 -
数据结构与算法(Java版) | 详解十大经典排序算法之一:冒泡排序
当然,如果你连听都没听说过,那我也不会说你啥,没听说过有啥关系,学就完了,对不!所以,冒泡排序,你要学会学明白,你就得来看我写的这篇文章,因为这篇文章费了我老鼻子劲了,花了好多时间才精心写就,可以这样说,只要是个人,看了他就得说好,毕竟在网上你几乎就见不到讲冒泡排序还有人讲得比我详细的了。我想,恐怕也未必吧,虽说你之前是会冒泡排序,但经过这么长时间的洗礼,恐怕难说你还记得多少,毕竟遗忘是人类的天性嘛,这点我不能责怪大家,就拿我本人来说,我也经常性遗忘前面所学的知识。原创 2023-11-12 22:53:36 · 869 阅读 · 6 评论 -
数据结构与算法(Java版) | 算法的空间复杂度简介
而且,大家也都知道,随着计算机的迅猛发展,硬件这一块的成本其实是在不断降低的,所以,做算法优化的时候,一般来讲,用空间来换时间在公司里面都是被允许的。实际上,在我们做算法优化的时候,本身就需要能够用空间来换时间,你也不想想平时业务开发的时候为什么不直接去查数据库,而非要去做什么二级缓存、三级缓存?其实,做二级缓存、三级缓存的目的就是让数据先加载到缓存,然后我们再直接从缓存中取,虽然这样做会占用一些额外的存储单元,但是速度却变得更快了。至此,关于算法空间复杂度的基本介绍,我就给大家讲完了。原创 2023-11-11 11:36:46 · 357 阅读 · 0 评论 -
数据结构与算法(Java版) | 万字详解算法的时间复杂度
下面我们用一个问题来引出算法的时间复杂度这一概念。该问题是,怎么去衡量一个程序(或者算法)的执行时间呢?就拿我们刚刚讲的排序算法来说,排序算法这么多,你又如何知晓哪一个排序算法执行的时间谁长谁短呢?要想搞清楚该问题,那我们就不得不知道度量一个程序(或者算法)执行时间的两种方法了。原创 2023-11-05 09:53:55 · 450 阅读 · 0 评论 -
数据结构与算法(Java版) | 排序算法的介绍与分类
首先,我先给大家对排序算法作一个基本的介绍。排序也称排序算法(Sort Algorithm),指将一组数据,依照指定的顺序进行排列的一个过程。原创 2023-11-04 10:27:46 · 950 阅读 · 0 评论 -
数据结构与算法(Java版) | 数组模拟队列的思路分析与代码实现
上一讲我们讲过,队列既可以用数组来实现,也可以用链表来实现,但由于我们比较熟悉数组这种结构,所以这里我会先给大家讲一下数组这种实现方式,至于链表这种实现方式,那就以后有机会再说吧!队列,它本身就是一个有序列表,且其若是使用数组这种结构来存储它里面的数据的话,则队列数组的声明就应该是如下图所示的这个样子,其中maxSize就是该队列的最大容量。上面这张示意图,大家应该还有些印象吧,你可千万别跟我说不熟悉啊,因为我上一讲就给大家讲过了。从以上示意图中,我们。。。原创 2023-05-10 10:53:06 · 955 阅读 · 4 评论 -
数据结构与算法(Java版) | 队列的应用场景和介绍
队列,听其名而知其义,相信大家应该都在现实生活中见过,比如在火车站排队买票,或者在麦当劳排队买吃的等等,这些场景你应该很熟悉吧!既然队列在现实生活中随处可见,那么我就要问一下大家了,队列有什么特点呢?恰好之前我用Java写了一个银行排队叫号系统的小项目,还记得当初写这个小项目就是为了让大家更好地去理解队列,这不,现在就用上嘛,废话不多说,下面就让我给大家运行一下这个小项目,让大家看看效果吧!给大家介绍完稀疏数组这种数据结构之后,接下来我再来给大家介绍一下另外一种数据结构,即队列。原创 2023-05-07 10:58:44 · 843 阅读 · 0 评论 -
向刘邦同志学习
最近在知乎闲逛,无意中看到一个问题,即,顿时觉得这个问题很有趣,于是就留心多翻了一些回答,发现其中有一个叫张福来的用户的回答深得我心,遂果断记录下来,以飨读者。为什么偏偏是刘邦?因为他值得我们学习,就连毛主席都说他是封建皇帝里边最厉害的一个,可见其厉害之处,反正我本人对刘邦非常佩服,且常有效仿之意,但始终不得其门而入。以下便是知乎用户张福来对这个问题的回答!原创 2023-04-16 12:09:47 · 915 阅读 · 1 评论 -
如何进行日常写作训练?
最近我感觉写一篇文章真的是太费劲了,就感觉写得都快死了,头发也挠下来了不少,现在我是终于感受到了那种挠头也写不出文章的痛苦了,那种痛苦就像周遭的黑暗一样向人铺天盖地地袭卷而来,令人想躲却无处可躲!我似乎陷入了一种巨大的漩涡中而不能自拔!痛苦,现在唯有这两个字才能形容我此刻的感受,然而扪心自问一下,这一切的始作俑者是谁呢?原创 2023-02-22 22:03:05 · 790 阅读 · 2 评论 -
数据结构与算法(Java版) | 稀疏数组的一个实际应用案例
通过上一讲的学习,我们知道了使用稀疏数组即可保存类似下面的二维数组,当然,现在大家可能都知道了该二维数组是由五子棋棋盘映射而来的,但是在实际应用中,它也有可能是由一个地图而映射来的哟!于是,现在我就要问大家了,如果说现在有这样一个需求,即:将稀疏数组存盘,并且希望可以重新恢复为原来的二维数组,那么请问你会怎么去分析呢?原创 2023-02-22 12:22:24 · 400 阅读 · 0 评论 -
数据结构与算法(Java版) | 稀疏数组的应用场景
关于稀疏数组,大家首先需要知道的一点是,当一个数组中大部分元素为0,或者为同一个值时,我们就可以使用稀疏数组来保存该数组了。记录数组一共有几行几列,有多少个不同的值。说白了,就是稀疏数组的第一行会记录原先二维数组的行数、列数以及一共有多少个不同的值。关于这一点,大家现在不理解也没关系,因为马上你就会知道稀疏数组长啥样了,到时你自然便能理解这一点了。把具有不同值的元素的行、列及值记录在一个小规模的数组中,从而缩小程序的规模。而这个所谓的小规模的数组,就是我们所说的稀疏数组。原创 2023-02-19 18:32:04 · 479 阅读 · 0 评论 -
数据结构与算法(Java版) | 线性结构和非线性结构
之前,我们说过,数据结构是算法的基础,因此接下来在这一讲我就要给大家来重点介绍一下数据结构了。首先,大家需要知道的是,数据结构包括两部分,即线性结构和非线性结构。知道这点之后,接下来我就要分别来为大家进行详细介绍了,下面咱们不妨先来看一下线性结构。原创 2023-02-17 18:49:41 · 484 阅读 · 0 评论 -
数据结构与算法(Java版) | 就让我们来看看几个实际编程中遇到的问题吧!
上一讲,我给大家简单介绍了一下数据结构,以及数据结构与算法之间的关系,照理来说,接下来我就应该要给大家详细介绍线性结构和非线性结构了,但是在此之前,我决定还是先带着大家看几个实际编程中遇到的问题,看完之后咱们再说。原创 2023-02-14 10:53:30 · 806 阅读 · 0 评论 -
数据结构与算法(Java版) | 数据结构与算法的关系
从这一节起,咱们就要开始进入到第二章(即数据结构与算法的介绍)的学习中了,总的来说,第二章要讲解的内容其实也不是特别的多,内容也多偏理论,相信大家学起来也比较轻松愉快。接下来,就请大家跟随着我开始第二章(即数据结构与算法的介绍)的学习之旅吧!原创 2023-02-13 11:05:45 · 1188 阅读 · 0 评论 -
数据结构与算法(Java版) | 本套系列教程的课程亮点和授课方式
接下来,在这一讲,我会花一点点时间给同学们达成一个共识,就是我们这套系列教程在讲述的时候,究竟是以一种什么方式来讲述的。我希望,经过我的讲解,大家能够形成如下这样一个统一共识,如此就不枉费我的一片苦心了。原创 2023-02-05 08:13:08 · 474 阅读 · 0 评论 -
数据结构与算法(Java版) | 本套系列教程的内容介绍
大家不妨看一下下面这张表格,这就是我们本套系列教程大致要讲解的内容。原创 2023-01-05 22:22:59 · 996 阅读 · 3 评论 -
数据结构与算法(Java版) | 数据结构与算法的重要性
通过前几讲我给大家介绍的几个经典的算法面试题,相信大家现在应该对数据结构与算法有了一个很浓烈的学习兴趣,嘻嘻🤭,数据结构与算法学起来还是非常有意思的,不骗你!激起大家的学习热情之后,接下来,我们就要正式步入数据结构与算法的学习旅程中了。首先,我们来看一下数据结构与算法的重要性究竟体现在哪些方面。原创 2022-12-15 22:54:43 · 574 阅读 · 3 评论 -
数据结构与算法(Java版) | 关于以上几个经典算法面试题的一个小结
为了让大家明白算法的重要性,以上我就举了几个经典的算法面试题,我的目的也很简单,就是希望引起大家对算法的一个兴趣。之所以在正式讲解数据结构与算法之前引出这几个经典的算法面试题,是因为我想告诉大家如下三点。而且,从目前的情况来看,不会算法的程序员迟早会被逐渐淘汰,所以大家一定要对算法重视起来,对它要有一个足够的认识。而正是鉴于此,我才在前两讲中给大家列举了那几个经典的算法面试题。接下来,我们不妨对前两讲中介绍的几个经典算法面试题做一个总结,复习复习一下。原创 2022-12-12 22:06:20 · 539 阅读 · 0 评论 -
数据结构与算法(Java版) | 几个经典的算法面试题(下)
上一讲,我给大家介绍了两个经典算法面试题,即字符串匹配问题和汉诺塔游戏,这一讲,我再来给大家介绍两个经典算法面试题,它们就是八皇后问题和马踏棋盘算法,注意,马踏棋盘算法也被称为骑士周游问题哟!接下来,我就先来给大家介绍一下八皇后问题这个经典算法面试题吧!原创 2022-12-08 21:57:29 · 784 阅读 · 0 评论 -
数据结构与算法(Java版) | 几个经典的算法面试题(上)
大家好啊,我是你们的李阿昀,好久不见了,甚是想念大家!这不,从今儿个开始,我又要给大家开个坑了,从本文的标题大家就能看出来,这次我要给大家讲的就是数据结构与算法(Java版),而且我还特地汇总成了一套系列教程,我有理由相信,本套讲述有关数据结构与算法的教程将有可能会是东半球最系统全面的一套教程,如若不信,则就请大家拭目以待吧!关于本套系列教程,有两点我需要向大家说明一下,第一点就是本套系列教程主要讲解的是有关数据结构与算法方面的内容,而且还是基于Java语言来进行讲解的,这一点相信我不说,大家也应该都知道了原创 2022-12-05 18:00:35 · 788 阅读 · 0 评论