数据结构与算法笔记 | 青训营笔记

119 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第3篇笔记。

a50f4bfbfbedab64034ff52fb97cb8c379310b55b080.webp 数据结构与算法是程序中最重要的部分之一,一个程序的数据结构是否合理能够决定这个程序的质量,一个程序的算法是否足够高效可以决定程序的效率。我们写的每一个程序都离不开数据结构与算法,尤其是对于GO语言来说,由于GO语言的一系列特性,GO语言十分适合用来作为编写服务器的语言,服务器中的算法至关重要。一个优秀的GO语言程序员必须具备良好的数据结构与算法能力。近些天,在听了老师的讲解后,我也自己进行了一些练习。用到的数据结构主要有:数组、链表、哈希表、字符串、栈与队列、二叉树等等,用到的算法主要有双指针法、回溯算法、贪心算法、动态规划、排序算法等等。其中给我留下映像最深刻的就是回溯法。回溯法是一种搜索方法,是一种穷举的方法,适用于一些必须穷举才能解决的问题,效率并不高,但是也是一种常用的必不可少的算法。回溯法主要可以用来解决以下几种问题:组合问题、切割问题、子集问题、排列问题、棋盘问题等,在回溯算法中,最关键的就是回溯函数模板的返回值以及参数、回溯函数的终止条件、以及回溯搜索的遍历过程。算法的性能分析也十分重要,不是用一个算法解决了一个问题就是最终目的,我们的目的应该是尽可能地找出最优解、节省计算机的资源,即使是用同一个算法、写出来的程序复杂度也可能相差甚远,我们必须学会全面的优化算法。