数据存储结构主要有:数组,链表,跳表(链表的一种结构)、栈、队列、哈希表、布隆过滤器、树、堆(树的一种结构)、字典树、avl树和红黑树等等。
数据搜索方式主要有:广度优先搜索、深度优先搜索、二分查找以及其他高级搜索
排序算法主要有:选择排序、插入排序、冒泡排序、快速排序、归并排序、堆排序、基数排序、希尔排序、计数排序以及桶排序。
数据处理的算法主要有:递归、分治、回溯、贪心和动态规划(分治 + 最优子结构)
除去上面所说的要点,另外两个重点就是位运算和字符串算法,分别面向数字和字符串的处理。
总的来说,对于任何数据,首先要存放在一个数据结构中,对数据结构中的数据可能会增删改查,也可能会搜索,不同的数据结构面对这些不同的操作会有不同的优点和缺点,要根据自己之后操作的需要择优选择不同的结构。
当我们有了数据和存储数据的结构之后,完成可能需要的数据层面的操作后,就需要使用这些数据完成一些任务,这时就用到了一些基本的算法去处理这些数据,常用的主要有递归、分治和动态规划。
两个多月的算法训练营结束了,虽然期间遭遇了很多困难,也有些颓废和放弃,但学到了很多东西,跟着进度一步一步走到了现在,对算法这一块总算有了一个统一的广度的认识。之后会继续努力,深入算法这个领域,并且保持自己良好的状态。