【算法】算法大纲

news/2025/1/13 4:27:12/

这篇文章介绍计算机算法的各个思维模式。

包括 计数原理、数组、树型结构、链表递归栈、查找排序、管窥算法、图论、贪心法和动态规划、以及概率论:概率分治和机器学习。没有办法逐个说明,算法本身错综复杂,不同的算法对应着不同的实用场景,也需要根据具体情况设计与调整。介绍仅仅提供了一个整体知识结构树,有利于在后期系统性的思维框架。

参考书目:

  1. 算法设计与分析(第3版)(美)Anany Levitin 著 潘彦 译 清华大学出版社
  2. [数据结构(C语言版)].严蔚敏_吴伟民. 著
  3. 数据结构算法分析——C语言描述(第2版)(美)Mark Allen Weiss 著. 冯舜玺 译
  4. 数据结构算法图解 (杰伊•温格罗, 袁志鹏译) (Z-Library 上可免费获取)
  5. 算法设计与分析 Dexter C · Kozen.康奈尔大学 版权由SpringerSperlag公司提供

我将算法主要分为三大部分:

  • 算法基础:包含算法的基本概念、复杂度分析和数学基础。
  • 算法设计策略:常用的算法设计方法,如管窥、分治、贪心、动态规划、线性规划等。
  • 高级算法:包括图论、概率论、NP完全性、近似算法、分布式算法、加密算法和机器学习等等。

算法基础

参考文章:【算法算法初步 中的内容。
除此之外,还包括算法的历史背景和重要性;算法在计算机科学中的作用。

  • 介绍了算法的五大特性:输入、输出、确定性、有穷性、有效性。
  • 算法的一些应用领域:排序、搜索、图算法、优化问题、数据分析、数据处理、机器视觉、运动控制等。

算法的基础分析

  • 主要内容:
    • 时间复杂度和空间复杂度的基本概念;算法效率的衡量标准;最坏情况、最优情况和平均情况分析。
    • 渐进符号:O(大O)、Ω(大欧米伽)、Θ(大Theta)。
    • 常见复杂度函数(如常数、对数、线性、多项式、指数等)的增长趋势。

数学基础

  • 主要内容:
    • 计数原理:排列、组合。
    • 数学归纳法。
    • 递归方程及其求解方法。递归关系的求解(迭代法、主定理、递归树)。
    • 模运算和数论基础;模运算在算法设计中的应用。

算法设计策略

分治策略

分治思想:分治策略是一种将大问题划分为规模较小的子问题,递归解决子问题,最后合并子问题解以获得原问题解的方法。

经典算法

  1. 二分搜索。
  2. 合并排序(Merge Sort)。
  3. 快速排序(Quick Sort)。
  4. 最近点对问题。

重点包括分治法的递归结构;主定理在分治策略中的应用;归并排序和快速排序的时间复杂度分析等等。

管窥算法

管窥算法是一种通过局部观察和处理问题的局部特征来逐步求解整体问题的方法。

实现方式:
管窥算法用于解决需要动态调整范围或局部处理问题的场景:

  1. 连续子数组问题(如最大子数组和、最小窗口子串)。
  2. 字符串匹配&#x

http://www.ppmy.cn/news/1562705.html

相关文章

Lua语言的软件开发工具

Lua语言的软件开发工具 引言 Lua是一种轻量级且高效的脚本语言,广泛应用于游戏开发、嵌入式系统以及Web开发等领域。由于其简洁的语法、强大的扩展性和良好的性能,Lua逐渐成为开发者们青睐的语言之一。在Lua语言的生态系统中,各类软件开发工…

docker 安装 fastdfs

1、安装docker(已安装的跳过这一步) 2、安装FastDFS ## 这里我使用的腾讯云个人镜像 docker pull ccr.ccs.tencentyun.com/satan/fastdfs:6.06## 创建挂载映射文件夹 mkdir /data/fdfs/tracker /data/fdfs/storage## 安装tracker docker run -dti --networkhost --name track…

SkyWise Digital:助力国际品牌成功进军中国市场

伦敦,2025年1月8日 —— SkyWise Digital 天智数字营销正式成立,专注于为国际品牌提供定制化的市场进入策略和数字营销服务,帮助他们成功打入中国市场。作为一家集文化洞察、数据驱动与创新技术于一体的专业机构,SkyWise Digital 致力于帮助西方品牌解锁中国市场的巨大潜力。 …

Node.js入门html,css,js 30年了nodejs环境 09年出现 15年

Node.js入门 html,css,js 30年了 nodejs环境 09年出现 15年 nodejs为我们解决了2个方面的问题: 【锦上添花】让我们前端工程师拥有了后端开发能力(开接口,访问数据库) - 大公司BFF(50)【✔️】前端工程…

NLP中的问答(Question answering)

在自然语言处理(NLP)中,问答(Question Answering, QA)任务并不严格等同于分类任务,但某些形式的QA任务可以被建模为分类问题。具体情况如下: 1. 问答任务的分类情况 多选问答 如果问题有多个备…

C++ vtordisp的应用场景

文章目录 问题代码1. 基本概念回顾2. 应用场景虚继承与虚函数并存的类层次结构 3. 编译器相关考虑 问题代码 #include <iostream> using namespace std;class base { public:base() {}virtual void show() { cout << "base:: show"<<endl; } priv…

代码随想录算法训练营第三十二天|509.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯

目录 509.斐波那契数 动态规划五部曲&#xff1a; 1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义 2.确定递推公式 3.dp数组如何初始化 4.确定遍历顺序 5.举例推导dp数组 70.爬楼梯 动态规划五部曲&#xff1a; 1.确定dp数组&#xff08;dp table&#xff09;…

unity免费资源2025-1-10

https://assetstore.unity.com/packages/3d/characters/humanoids/humans/streetwear-girl-2-8-casual-wear-girls-pack-3-274536 零元购码DAVIDGRETTE2025