Algorithm learning

Algorithm learning …

广义上讲,数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法

比如图书馆储藏书籍,管理员一般会将书籍分门别类进行“存储”。按照一定规律编号,就是书籍这种“数据”的存储结构。 如何来找一本书?有很多种办法,你当然可以一本一本地找,也可以先根据书籍类别的编号,是人文,还是科学、计算机,来定位书架,然后再依次查找。 这些查找的方法就是算法。

常见的数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树; 常见算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。

数据结构是为算法服务的,算法是建立在特定的数据结构之上

比如,因为数组具有随机访问的特点,常用的二分查找算法需要用数组来存储数据。但如果我们选择链表这种数据结构,二分查找算法就无法工作了, 因为链表并不支持随机访问。