拥抱「资料结构」的「演算法」(30) - 完赛心得

前言

耶呼~~~ 终於 30 天了!喔耶!因为参加铁人赛瘦了 2 公斤,因为写文章实在太烧脑啦XDDD,一起来看看我的心得感想吧


心得

首先,非常谢谢 iT 邦帮忙铁人赛,透过这 30 天,让我好好的嗑了我念书时期的书跟笔记本(差点消化不良),从过程中了解到自己其实还有许多不懂的地方,需要好好认真面对,学会专业的内容之後,再进一步的内化并用自己的话说出来,透过举例子(想谜题跟例子真的是想破头XD),分享的动作加深自己的印象,透过 30 天的学习,真的明显感受到自己的进步,非常开心,也谢谢大家的陪伴,如果有任何理解错误或不适合的内容请告诉我,让我有机会改善 XD

再来想跟大家分享资料结构与演算法对我工作上的影响,原本的我早已把大学学过的东西通通还给老师了,等到真的发现自己在撰写程序遇到瓶颈时,大概是毕业後的第 6 年,因为过程中其实大多是接触前端画面的处理,或是後端的资料库存取,就是资料的呈现与储存而已,等到开始接触一些推荐系统或是 LeetCode 才发现我不会写程序了耶!

发现自己对於如何将输入的资料储存成适合的资料结构会有障碍,因为资料结构会影响到後续程序排序资料或寻找资料的方便性,再来如何读取特定的资料结构并将资料转成自己想要呈现的结果,也卡关 XD,就像是二元树如何使用阵列表示早知忘光,整个不知所以然,只能用惨字形容,只能好好 K 书,发现当年理解的并非真的理解

而演算法的部份更是悲惨到极点,基本排序通通不懂,刚好因为工作内容需要换成其他语言,发现比较底层的语言排序要自己写耶,如何在一串数字中快速完成排序,又再次卡关,实在是很掉漆,顿时觉得资料结构真的很重要,这个观念没有架构好,演算法更是举步维艰,觉得再这样下去我可能工作不保,於是有开始念书,但过程中因为自己的拖延症又停摆了,刚好遇到铁人赛,所以握紧机会参赛,果然满载而归

现在面对工作上的需求或是写 LeetCode 都会先分析需求,再去了解题目的架构,需要搭配哪些资料结构来储存相关的资料,最後再实作演算法的部分(甚至会有一些混和式的作法),让结果符合需求,发现念书之後整个思考方式都改变了,感觉基础观念真的非常重要,像是求两数的最大公因数,可以使用暴力法,也可以使用辗转相除法,去分析两者之间的优缺点,虽然说自己还有很多不太了解的部分,但会想继续努力,去加强这些观念,对於自己工作上或思考事情上面都有帮助,最大的部份应该是表达,试着用别人可以理解的方式去举例子,而不是用自己坚持的对,去要求对方理解 XD

最後感谢我的家人,包容我 30 天,让我可以好好的利用时间写文章,而且我每一天都会请家人阅读然後解谜题(好可怜XD),辛苦他们了,工作之余还要看他们不懂的内容,感觉他们压力好大,不过看着他们有顺利通过谜题时,会觉得很开心,其实资料结构与演算法跟我们生活有许多连结,其实不像刻板印象中的那麽艰深,不过有一阵子家人会反映说他们看不懂程序码,所以分享的内文大多是以观念的部分在述说,程序码的部分并没有做说明,希望这些文章能够让初学者觉得资料结构与演算法是有趣的,而不是一开始就被程序码吓跑XD,回想到念书时期很多同学都是因为看到程序码而放弃,连基础观念都还没打好就因为误解而离开了,真的蛮可惜的

最後的最後,谢谢资料结构与演算法陪我度过这 30 天,真的花了很多时间跟心力在跟这两位打交道,我们应该是好朋友了(相拥而泣),也谢谢大家,下台一鞠躬(挥手)


回顾

30天的分享内容,分为两大部分资料结构演算法

资料结构

演算法

画图

由於资料结构与演算法会使用到很多图表,所以这段时间卷子袖子画了很多张图(擦汗),丑丑的还请大家见谅,还有每篇的谜题也有部分需要借助图片,就来挑几张来回顾一下吧XD
https://ithelp.ithome.com.tw/upload/images/20201014/20129841m3ag218yOA.png

昨日解谜

谜题说明:找出公里数最少的路径,然後将各国国名的字首拼起来,就会得到DIJKSTRA就是戴克斯特拉演算法
https://ithelp.ithome.com.tw/upload/images/20201014/20129841hbDOcW3XTc.png


<<:  第廿九天:重新开始奋发的周三

>>:  Day 29 注册ASN必要的几个object

Angular Stock登入(一)(Day21)

今天要开始实作登入页面,首先我们先新增一个login元件 ng generate component...

[DAY6] 万事起头难

找救援 意识到有问题时,首先寻找有没有专案遇到同样的问题——有使用 Ruby on Rails 的大...

36.Local Storage2

Local Storage 只适合用于存储简单的值。为了存储对象和数组这样更复杂的数据,你必须使用 ...

[Day29]程序菜鸟自学C++资料结构演算法 – 桶排序法(Bucket sort)

前言:桶排序又名箱排序,究竟这个特殊的排序法是怎麽运作的,让我们一来探讨! 桶排序: 和上一篇的基数...

Day18 用CSS做出动画效果

还没学到这个属性之前,一直以为必须使用到JavaScript,才能让网页有动画的效果,没想到用CS...