【实践数据结构与算法】开篇词:数据与算法之美

发动机之于汽车,九阳真经之于张无忌,数据结构之于编程.

本文并不是数据结构和算法的学习教程,而是面向解决问题来讨论数据结构与算法,是在实践过程中对数据结构与算法的高度总结.

什么是数据结构与算法

数据结构是一组数据的存储结构. 算法是操作数据的一组方法.

算法与数据结构是相辅相成的,没有建立在数据结构上的算法,讨论数据结构也没有意义.

举个例子 : 工厂仓库需要存放成百上千个商品. 存放商品的方式就是数据结构, 而对于商品的查找,盘点,分类就属于算法.

然而数据结构与算法的涉及面实在太广,俗话说"一入算法深似海",为了防止我或者你放弃,所以我们集中讨论实际工作与代码优化中会用到的20个算法与数据结构.

本文集中讨论的20个数据结构与算法

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

我希望达到的目的

作为一个以解决问题为主的工程师,我认为编程只是一种工具. 我希望能尽自己最大的能力,从实际出发,一起领略数据结构与代码之美.