作者github:https://github.com/wangzheng0822/algo
从广义上讲,数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。 从狭义上讲,也就是我们专栏要讲的,是指某些著名的数据结构和算法,比如队列、栈、堆、二分查找、动态规划等。这些都是前人智慧的结晶,我们可以直接拿来用。我们要讲的这些经典数据结构和算法,都是前人从很多实际操作场景中抽象出来的,经过非常多的求证和检验,可以高效地帮助我们解决很多实际的开发问题。数据结构是为算法服务的,算法要作用在特定的数据结构之上。
20个最常用、最基本的数据结构与算法 10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树 10个算法: 递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法
about algorithm learn
数组占据随机访问的优势,却有需要连续内存的缺点。
链表具有可不连续存储的优势,但访问查找是线性的。
散列表和链表、跳表的混合使用,是为了结合数组和链表的优势,规避它们的不足。
我们可以得出数据结构和算法的重要性排行榜:连续空间 > 时间 > 碎片空间。