博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基本算法概论
阅读量:5152 次
发布时间:2019-06-13

本文共 622 字,大约阅读时间需要 2 分钟。

  基本算法主要分为以下四类:

1、子结构类算法:分治法,动态规划,贪心法

  子结构问题主要是要知道怎么从子结构问题的解推出现在问题的解,最粗糙的是简单递归,在递归的基础上进行改进就形成了分治、动态规划和贪心

  分治法着重于从中间开始考虑

     动态规划着重从头尾考虑得到子结构,着重考虑从子结构推出现有结构,需要记录子结构值动态规划本质上只是减少了在递归过程中对子结构问题的重复求解,但是并没有缩小子结构问题的求解空间,所以有一些问题使用动态规划通常时间复杂度并没有减少到最小,这些问题通常需要更加巧妙的解法来实现最优的时间复杂度。

  贪心法着重于从整体开始考虑,找出最优值后得到子结构

 

2、搜索类算法:回溯法,分支限界法, 深度优先搜索 ,广度优先搜索

  搜索类算法最粗糙的是暴力枚举。主要需要明确是否能有序穷举解空间。

  回溯法建立在深度优先搜索的基础上;

  分支限界法建立在广度优先的基础上(分支限界维护一个优先队列,按照广度优先扩展并计算优先值,然后放入优先队列中并选出最优点作为下一个扩展点)。 Dijkstra算法最好归结为分支限界,每次从队列中选择最短路径的最小值进行扩展。

 

3、排序类算法:

冒泡、插入、选择

快排、归并、堆、希尔

计数、基数、桶

4、查找类算法:

遍历查找、二分查找

索引查找、哈希表

转载于:https://www.cnblogs.com/littlebugfish/p/4321695.html

你可能感兴趣的文章
HDU 6370(并查集)
查看>>
BZOJ 1207(dp)
查看>>
HDU 2076 夹角有多大(题目已修改,注意读题)
查看>>
洛谷P3676 小清新数据结构题(动态点分治)
查看>>
Attributes.Add用途与用法
查看>>
L2-001 紧急救援 (dijkstra+dfs回溯路径)
查看>>
javascript 无限分类
查看>>
spring IOC装配Bean(注解方式)
查看>>
[面试算法题]有序列表删除节点-leetcode学习之旅(4)
查看>>
SpringBoot系列五:SpringBoot错误处理(数据验证、处理错误页、全局异常)
查看>>
kubernetes_book
查看>>
侧边栏广告和回到顶部
查看>>
https://blog.csdn.net/u012106306/article/details/80760744
查看>>
海上孤独的帆
查看>>
处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“Manag
查看>>
01: socket模块
查看>>
mysql触发器
查看>>
淌淌淌
查看>>
win10每次开机都显示“你的硬件设置已更改,请重启电脑……”的解决办法
查看>>
C++有关 const & 内敛 & 友元&静态成员那些事
查看>>