算法分析与设计

算法基础

选择排序

冒泡排序

顺序查找

凸包问题

穷举法

  TSP(旅行商问题)<O(n)=n!>

  背包<O(n)=2n>

  分配<O(n)=n!>

深度优先搜索DFS 栈

  邻接矩阵Θ(V2)

  邻接表Θ(|V|+|E|)

广度优先搜索BFS 队列

  邻接矩阵Θ(V2)

  邻接表Θ(|V|+|E|)

蛮力法

 

减治法

转化为规模较小相同问题

增量法  小——>大

  自顶向下:递归

  自底向上:递推(迭代)

1、减常量

  插入排序

  拓扑排序

2、减常因子

  二分查找<O(n)=log2n>

  俄式乘法

    eg:n*m=:n/2*2m(n为偶数)

         (n-1)/2*2m+m(n为奇数)

3、减可变规模常量

  最大公约数Euclid算法<O(log2n)>

  插值查找<O(log2log2n)>

  基于分区的选择问题<Θ(nlog2n)>

分治法

 划分多个相同问题的较小实例

递归求解小实例

组合小实例解=>原解

归并排序<Θ(nlogn)>

快速排序<Θ(nlog2n)>

大整数乘法

 

Strassen矩阵乘法<传统O(n3),分治O(n2.81)>

二维最大点O<(n2)>

最近点对算法<O(nlogn)>

凸包算法<O(nlogn)>

棋盘覆盖 

 

变治法

变换问题,便于后题求解

实例化简:实例变换为另一个更简单方便求解实例

  预排序<Θ(nlogn)>

  高斯消去法<Θ(n2)>

改变表示

  变换问题的表达方式

  AVL树<Θ(logn)>

  2-3树<Θ(logn)>

  堆<Θ(n)>

  堆排序<Θ(nlog2n>

  霍纳法则<Θ(n)>

问题归纳:变换为已有求解算法的另一个问题。(数学建模)

 

贪心算法

兑换硬币

用的面额越大,换的个数越少,剩余额越少

最小生成树

  Prim

  Kruskal

最短路径

  单源单目标

  单源多目标 Dijkstra

连续背包

  单位价值di=Vi/Wi

(单会场)活动安排<Θ(nlogn)>

  以结束时间越早

  与动态规划相比高效,但不一定可以得到最优解,但动态规划(效率差)能得到

 

动态规划

 

搜索

回溯法

分支定界搜索

 

posted @   星空海1982906  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)
levels of contents
点击右上角即可分享
微信分享提示

目录导航