算法是什么?数据结构是什么?怎么学算法?要怎么才能避免以后的工作不只是CRDN呢?还有我的心得体会,希望能影响到为此迷茫的你们!

@学算法和Java的你们
大家好,我是Ziph!

此文章是我初入算法,看过一位贵人为我推荐的一些算法文献资料,让我找到了学习算法的方向和学习算法的意义。

那什么是算法?什么是数据结构呢?
数据结构是一组数据的存储结构,而算法就是操作数据的方法。数据结构和算法是相辅相成的,数据结构是为算法服务的,而算法要作用在特定的数据结构之上。

那么学习算法和数据结构解决的是如何更省、更快的存储和处理数据的问题,因此我们就需要考量效率和资源消耗的方法,这就是复杂度分析方法。在学数据结构和算法的过程中,我们要学习它的来历、自身的特点、适合解决的问题以及实际的应用场景。

  • 数据结构和算法的精髓就在于它的复杂度分析(空间复杂度和时间复杂度)
  • 最常用最基础的数据结构有数组、链表、堆、栈、队列、散列表、二叉树、跳表、图、Trie树
  • 最常用的算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法

了解了数据结构和算法,那我来谈谈我没有了解算法和初入算法的心得感受吧!
所谓“谁的青春不迷茫”,其实开始不了解算法的时候,我只会简单的算法知识和运用(当然了现在也是简单的,毕竟初学嘛,大家见谅!),不懂得算法的核心、更不懂数据结构,有一次我发现了我的逻辑思维没有那么敏捷,想到以后也许你的思维跟不上必定会给你以后的发展拖后腿,于是我就打算学算法来拓展我的逻辑思维。也正是因为我初入算法,感觉算法这门太难了,不知道从何学起。刷题吧,不会,而且你的知识层面不够,看资料查文献吧不懂,算法的专业名词不了解,等于看白书一样。
当我问IT大牛的时候,我说我写不出来算法题目的答案,而且甚至连答案都看不懂。而他说,你是学习的方向错了(学习方法和方向的重要性)。
因为我们在学数据结构和算法的过程中,我们要学习它的来历、自身的特点、适合解决的问题以及实际的应用场景。(核心算法的复杂度分析)

那算法又有什么用呢,以后会为我们提供什么帮助呢?
他既能锻炼你的逻辑思维,又能为你以后的发展铺路。谁都不甘心以后买进了IT的大门之后成为了一名CRDN程序员吧。假如你年复一年的只做增删改查、和利用别人GitHub上的框架实现功能的话,那又有什么意义呢?你的价值呢?那你怎么能像大佬们一样把自己的框架分享到GitHub中让别人去用呢?醒醒吧,谁都知道IT是一个高薪行业,是一个活到老学到老的行业,如果你不学习,终究会面临社会的无情淘汰。有的人说,IT行业就是吃的年轻饭,但有的人怎么还没有老呢他就被淘汰了呢?答案很明显,你品,你细品,看看对不对。

所谓“台下十年功,台上十分钟”,你以为大到架构师、CTO、CEO,小到部门经理、产品经理、总监、工程师是这么容易早就的吗?那有的人开始只是个工程师,又怎么走向CTO、CEO、架构师的呢?记住一口不成胖子,最后还只能是靠自己脚踏实地的一步步积累走到的属于你自己的人生巅峰!

所以算法不难,只是你的学习方向、方法、学习思想和职业规划出了问题,及时纠正,加以修炼终会修成正果!

一条学习小法则:边学边练边刷题,多学多写多思考!

以上是我的总结和有感而发的心得体会分享给大家,我相信我能行,我更相信你们也能行!让我们一起学习,一起进步,一起走向属于自己的人生巅峰!

下面是一位优秀讲师王争老师总结的算法知识和数据结构全面思维导图(flag),我自己又重新梳理总结了一遍如下:
在这里插入图片描述

心得体会献给大家,我要更努力了!我相信我自己我能行!而我也相信大家也能行,加油!

拜拜

发布了49 篇原创文章 · 获赞 94 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44170221/article/details/104326041