算法与数据结构体系学习
文章平均质量分 90
关于算法与数据结构作为程序猿类来说可以是像呼吸空气一样每天都来点新鲜的,而对于它们的研究可以伴随着整个职业生涯当中,但是往往这块越学习越觉得好像没学会,因为不成体系,所以这个专题开启则来体系的对它进行重新的审视,希望自己未来对于这块的知识如吸引新鲜空气一样的舒服。
webor2006
码农一个,记录个人成长的点滴~~
展开
-
算法与数据结构基础<四>----数据结构基础之动态数据结构基础:链表<下>
链表与递归:在上一次算法与数据结构基础<四>----数据结构基础之动态数据结构基础:链表<中>对于递归进行了一个初步的学习,其中在文末提到了我们在写递归算法时一定要站在递归的宏观语意上来理解,这样会简单很多,很多时候我们可以将递归算法理解成它的一个子过程就好了,这里继续对链表与递归的关系进行进一步的探讨。链表天然的递归性:对于链表,它其实天然就具有递归性的,如何理解?比如这么一个链表:而它其实可以把它想像成这样:也就是第一个元素0后面又挂了一个更短的链表,原创 2022-01-03 09:08:22 · 256 阅读 · 0 评论 -
算法与数据结构基础<四>----数据结构基础之动态数据结构基础:链表<中>
使用链表实现栈:前言:在上一次算法与数据结构基础<四>----数据结构基础之动态数据结构基础:链表<上>咱们完成了链表的底层实现,其中对已实现的链表时间复杂度进行了一个分析,有这么一个图:其中只对链表“头”进行增、删、查操作,整个链表的时间复杂度是O(1),也就是性能是非常好的,这里将“头”特意强调的原因是:栈这个数据结构不就是只对头进行操作么?回忆一下栈这个数据结构的特点:后进先出,是不是往栈中增、删、查操作都是从栈顶操作的?关于栈顶和栈底这里需要再复习一下算法与数原创 2021-11-24 15:23:11 · 477 阅读 · 0 评论 -
算法与数据结构基础<四>----动态数据结构基础:链表
接着上一次算法与数据结构基础<三>----数据结构基础之栈和队列加强之用栈实现队列 - cexo - 博客园的数据结构继续往下学习,这次会进入一个非常重要的数据结构的学习----链表,这个是未来学习复杂算法的一个基础,大量会被用到,所以,先夯实好基础。什么是链表?对于链表这个数据结构,应该人人都有所了解,为了学习成体系,还是再来简单审视一下它。线性数据结构:在前面,咱们已经学习了这三种线性的数据结构:动态数组:算法与数据结构基础<三>----数据结构基础之动态数.原创 2021-09-24 07:10:16 · 375 阅读 · 0 评论 -
算法与数据结构基础<三>----数据结构基础之栈和队列加强之用栈实现队列
在上一次算法与数据结构基础<三>----数据结构基础之栈和队列加强之实现双端队列针对栈和队列这俩非常基础又非常重要的数据结构进行了一个加强练习,其中用队列实现了一个栈,但是还差反转的实现,也就是用栈来实现队列,上篇中发现有个小标写错了~~错了就错了吧,不改了,这篇之后,就木错了~~目标:对于这次所编写的程序,最终也是会copy到LeetCode的这一个题上来进行验证:https://leetcode-cn.com/problems/implement-queue-using-stacks/原创 2021-08-29 09:14:47 · 181 阅读 · 0 评论 -
算法与数据结构基础<一>----线性查找法
开篇:对于数据结构及算法的学习在17年时就已经在博客中开了专栏:但是!!!感觉学得有点零散,有c版本的,也有java版本的,没成体系,当然其效果也并没达到自己满意的效果,基于此,这里准备重新开个专栏:准备从0开始构建一个Java版本对于算法与数据结构的学习体系,重点是要“系统”,正好也对于之前所学的算法进行一个重新梳理,并且再将自己的算法功底拔高一下,说实话算法的学习是比较枯燥的,但是...原创 2020-11-02 13:57:00 · 178 阅读 · 0 评论 -
算法与数据结构基础<二>----排序基础之选择排序法
最简单的排序算法:选择排序法:在上一次https://www.cnblogs.com/webor2006/p/13914100.html来了个算法的开篇,介绍了线性查找法的简单算法,这次继续夯实基础,而排序就是算法中非常基础又非常重要的算法,如题所示,这里先来学习最最简单的排序算法----选择排序。思想:它的排序思想比较简单:过程分析:对于它的实现其实是有两种,咱们先来看一下这两种的...原创 2020-11-21 08:45:00 · 620 阅读 · 0 评论 -
算法与数据结构基础<二>----排序基础之插入排序法
继续接着上一次https://www.cnblogs.com/webor2006/p/14014542.html的排序算法夯实基础,上次是选择排序,这次则是插入排序了,其学习路线基本跟上一次雷同~~思想:生活场景:先来对插入排序的思想进行一个了解,了解的场景从我们打扑克开始:当我们手中抓到图中所示的几张牌时,你是怎么样将它从小到大的顺序进行排列的呢?其实插入排序直观的感觉就是如你针对此...原创 2020-12-04 13:31:00 · 177 阅读 · 0 评论 -
算法与数据结构基础<三>----数据结构基础之动态数组
为什么要学习数据结构:从今天开始则开始来接触数据结构,关于数据结构的概念应该人人皆知,下面先来宏观上再来概述一下。定义:数据结构研究的是数据如何在计算机中进行组织和存储,使得我们可以高效的获取数据或者修改数据。其中重点是要"高效"。分类:所以为了达到“高效”的目的就出现了N多种数据结构了,总体分为三大类:线性结构:数组【本次所学】栈队列链表哈希表...树结构:二...原创 2020-12-28 05:45:00 · 234 阅读 · 0 评论 -
算法与数据结构基础<三>----数据结构基础之栈和队列
继续接着https://www.cnblogs.com/webor2006/p/14092866.html来体系学习数据结构,这次将学习全新的两个线性数据结构---栈和队列,也是人人皆知的,当然也是非常非常重要的两个数据结构,很多一些复杂的算法都得借助它们的特性来进行实现。栈【Stack】:栈也是一种线性的结构。相比数组,栈对应的操作是数组的子集。只能从一端添加元素,也只能从一端取出元...原创 2020-12-31 15:11:00 · 203 阅读 · 0 评论 -
算法与数据结构基础<三>----数据结构基础之栈和队列加强之实现双端队列
在上一次https://www.cnblogs.com/webor2006/p/14216904.html咱们学习了栈和队列这俩基本数据结构了,接下来则会进一步深入加强,以加深对于它们的了解,也是面试时很有可能会被提到的~~实现双端队列:理论:接下来准备实现一个全新的数据结构---双端队列,其实跟我们之前所学的队列关系紧密,我们知道,对于普通队列来说“只能从一端(队尾)添加元素,只能从另一...原创 2021-08-14 07:25:00 · 188 阅读 · 0 评论