基本算法梳理

算法的梳理,主要是还是一种思想

现在高级语言对算法的支持已经都集成了,使用中list.sort()就能很快调用,主要是还是深刻理解思想

1.排序算法

给定数组,链表,字符串等排序都是类似的

都是按照一定的要求进行排序处理。主要是快速排序,冒泡排序

还在读书的时候就有写过简单的排序实现,那时候也只是实现。其实现在写业务代码的过程中,也是不需要有多深刻的理解,只是深度的提升在研究到一些比较深入的问题时很有必要:

经典排序算法java实现_石硕页的博客-CSDN博客

2.搜索算法

2.1二分搜索

查找集合中某个元素,直接遍历搜索,二分法搜索

2.2广度优先搜索和深度优先搜索

对于树形的集合机构,在搜索时的算法,可以先往深度搜索,还是先广度搜索。

其实是类似的,广度的话,层级少,子节点多;深度的话,层级多,子节点少。

3.贪心和动态规划

这个都是运筹学与控制论的一些算法理论。

动态规划,也是找最优路径,求解最大值或最小值的理论

贪心算法,平时也有听到过,这种对于程序员可能工作中也用的不多。

简单理解:短视的就是贪心算法,长远的就是动态规划【狗头】

你可能感兴趣的:(算法与数据结构,数据结构)