算法研究内容算法有关概念

news/2025/11/2 18:25:06/文章来源:https://www.cnblogs.com/wy0518/p/19175611

1.1调度问题与投资问题

1. 调度问题

问题&建模

image

image

2. 贪心算法: 加工时间短的先做,加工时间从小到大排序(有反例 根据实际问题使用)

3. 算法设计:
1.问题建模
2.选择什么算法?如何描述这个算法?
3.这个算法是否对所有实例都得到最优解?如何证明?
4.如果不是,能否找到反例?

4. 投资问题

问题&建模

image

建模:

image

5. 蛮力算法:

算法&效率

image

效率:

image
image

6.小结: 问题求解的关键

  • 建模: 对输入参数和解给出形式化或半形式化的描述
  • 设计算法: 采用什么算法设计技术,正确性--是否对所有的实例都得到正确的解
  • 分析算法--效率


1.2问题的计算复杂度: 排序问题

1.排序算法的效率: 以元素比较作基本运算

各算法比较
image

1.1插入排序

运行实例

image

1.2冒泡排序

运行实例 每一次巡回,最大数放在最后,下一次巡回停止在上次最后一次交换处

image

1.3快速排序

运行实例 把首元素当作划分标准,从最后一个数从前开始找第一个比首元素小的数,从前面向后面找第一个比首元素大的数,两者交换.

image

1.4二分归并排序

运行实例 中间分开两组,先递归排序,再挨个取第一个数比较,小的取出来

image

2.问题的计算复杂度分析

image

3.小结:

  • 几种排序算法简介:插入排序、冒泡排序、快速排序、归并排序
  • 排序问题的难度估计--界定什么是最好的排序算法


1.3NP-hard问题与计算复杂性

1.NP-hard问题

典型问题 1.1 货郎问题
详情

问题:

image

建模与算法:输入

image

1.2 0-1背包问题
详情

问题:

image

建模与算法:

image

1.3 双机调度问题
详情

问题:

image

建模与算法:

image

  • NP-hard问题小结:
    • 这样的问题有数千个,大量存在于各个应用领域
    • 至今没找到有效算法: 现有的算法的运行时间是输入规模的指数或更高阶函数
    • 至今没有人能够证明对于这类问题不存在多项式时间的算法
    • 从是否存在多项式时间算法的角度看,这些问题彼此是等价的,这些问题的难度处于可有效计算的边界

Algorithm + Data Structure = Programming

好的算法: 提高求解问题的效率&节省存储空间

算法的研究目标:

  • 问题 -> 建模并寻找算法
  • 算法 -> 算法的评价
  • 算法类 -> 问题复杂度估计
  • 问题类 -> 能够求解的边界

image

计算复杂性理论的核心--NP完全理论


1.4算法及其时间复杂度

1.问题及实例

详情
  • 问题: 需要回答的一般性提问,通常含若干参数

  • 问题描述:
    定义问题参数(集合,变量,函数,序列等)
    说明每个参数的取值范围及参数间的关系
    定义问题的解
    说明解满足的条件(优化目标或约束条件)

  • 问题实例: 参数的一组赋值可得到问题的一个实例

2.算法

详情
  • 算法:
    有限条指令的序列
    这个指令序列确定了解决某个问题的一系列运算或操作

  • 算法A解决问题P:
    把问题P的任何实例作为算法A的输入,每步计算是确定性的,A能够在有限步停机,输出该实例的正确的解

3.基本运算与输入规模

详情

算法基本运算次数可表为输入规模的函数

给定问题和基本运算就决定了一个算法类

  • 3.1 输入规模

    • 排序: 数组中元素个数n

    • 检索: 被检索数组的元素个数n

    • 整数乘法: 两个整数的位数m,n

    • 矩阵相乘: 矩阵的行列数i,j,k

    • 图的遍历: 图的顶点数n,边数m
      ...

  • 3.2基本运算

    • 排序: 元素之间的比较

    • 检索: 被检索元素x与数组元素的比较

    • 整数乘法: 每位数字相乘(位乘)1次m位和n位整数相乘要做mn次位乘

    • 矩阵相乘: 每对元素乘1次 ij矩阵与jk矩阵相乘要做ijk次乘法

    • 图的遍历: 置指针
      ...

4.时间复杂度

概念
  • 4.1最坏时间复杂度W(n)
    算法求解输入规模为n的实例所需要的最长时间

  • 4.2平均时间复杂度A(n)
    在给定同样规模为n的输入实例的概率分布下,算法求解这些实例所需要的平均时间

    计算公式
    image

顺序检索算法问题
实例

image

最坏情况的时间估计:

image

平均情况的时间估计:

image

改进

image

最坏时间复杂度: W(n) = n
平均时间复杂度: A(n) = n/2


1.5算法的伪码表示

1.关键字

  • 赋值语句: ←
  • 分支语句: if ... then ... [else...]
  • 循环语句: while, for, repeat until
  • 转向语句: goto
  • 输出语句: return
  • 调用: 直接写过程的名字
  • 注释: //...

2.例子

求最大公约数 输入: 非负整数m,n,其中m与n不全为0

输出: m与n的最大公约数

伪码表示:

  1. while m > 0 do
  2. r ← n mod m
  3. n ← m
  4. m ← r
  5. return n

运行实例:
image

改进的顺序检索 输入: 数组 L[1...n], 元素从小到大排列,数x.

输出: 若x在L中,输出x的位置下标j;否则输出0

伪码表示:

  1. j ← 1
  2. while j <= n and L[j] do j ← j+1
  3. if x < L[j] or j < n then j ← 0
  4. return j
插入排序 输入: n个数的数组A

输出: 按照递增顺序排好序的数组A

伪码表示:

  1. for j ← 2 to n do
  2. x ← A[j]
  3. i ← j-1 //3-7行把A[j] 插入A[1...j-1]
  4. while i > 0 and x < A[i] do
  5. A[i+1] ← A[i]
  6. i ← i-1
  7. A[i+] ← x

运行实例:
image

二分归并排序 MergeSort(A,p,r)

输入: 数组A[p...r]

输出: 按递增顺序排序的数组A

伪码表示:

  1. if p < r
  2. then q ← [(p+r)/2]
  3. MergeSort(A,p,q)
  4. MergeSort(A,q+1,r)
  5. Merge(A,p,q,r)

MergeSort 有递归调用,也调用Merge过程

3.小结:

  • 伪码不是程序代码,只是给出算法的主要步骤
  • 伪码中允许过程调用


1.6函数的渐进的界--阶

1.五种表示函数的阶的符号

111

大O符号

image
例子:
image

大Ω符号

image
例子:
image

小o符号

image
image

小ω符号

image
例子:
image

大Θ符号

image

2.小结:
image


1.7有关函数渐进的界的定理

1.设函数f、g、h的定义域为自然数集合

定理
  • 定理一
    image
    估计函数的阶:
    image

  • 定理二: 函数的阶之间的关系具有传递性
    image
    阶排序:
    image

  • 定理三
    image

2.小结:

  • 估计函数的阶的方法: 计算极限
  • 阶具有传递性
  • 对数函数的阶低于幂函数的阶,多项式函数的阶低于指数函数的阶
  • 算法的时间复杂度是各步操作时间之和,在常数步的情况下取最高阶的函数即可


1.8几类重要的函数及性质

基本函数类: 阶的高低
image

函数
对数函数

简化符号:
image
性质:
image

指数函数与阶乘

image

取整函数

定义:
image
实例:
image
应用: 二分检索
image
性质:
image
证明性质(1):
image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/953730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第13天(中等题 滑动窗口)

打卡第十三天 2道中等题一个高效的方法来获取数组中所有不重复的元素。 unordered_set<int> uniqueSet(nums.begin(), nums.end());//获取数组中所有不重复的数字 int k = uniqueSet.size();//不重复数字的个数k…

我重生了,重生到了CSP前——高中物理电学速通

喜报:CSP炸了,然后两天之后学校期中考,我夺回属于我的所有!(?) 电荷和元电荷有新的旅行伙伴加入了: $ \ \ \ \ $ 电荷量(符号 \(\mathit{Q}\) 单位 \(\mathit{C}\) )电量荷是有基本单位的,也就是一个电子所带的电…

列车驶向何处 | CSP-S 2025 #3

整个十月的下半是在来来往往的列车上度过的。从苏州往返上海,北京,南京,每一次的结果好像都并不如意。 这个月第一次踏上列车是上海的数学基础测试,机试,十五道题,只填正整数。进场前的目标是十二个题,后来变成…

为啥slmbuild的cutoff不能设得很大

为啥slmbuild的cutoff不能设得很大在sim_slmbuilder.cpp的CSlmBuilder::AddNGram里:if (fr > cut[nlevel]) {TLeafLevel& v = *(TLeafLevel*)(level[nlevel]);v.push_back(TLeaf(ngram[nlevel - 1], fr)); } e…

团队项目1-团队展示选题-图书管理系统

项目信息-图书管理系统项目 内容所属课程 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience作业要求 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience/homework/13471作业目标…

第二天,学习部分快捷键位(重点加粗)

快捷键位复制 ctrl+C 粘贴 ctrl+V 全选 ctrl+A 剪切 ctrl+X 撤销 ctrl+Z 保存 ctrl+S 关闭 alt+F4 永久删除 shift+delete 打开命令窗口 win+R 打开任务管理器 ctrl+shift+Esc 切换屏幕 win+Tap

windows terminal 配置文件

{"$help": "https://aka.ms/terminal-documentation","$schema": "https://aka.ms/terminal-profiles-schema","actions": [],"copyFormatting": "…

第二章算法作业

第二章算法作业1.请用自然语言或伪代码描述找第k小的数的分治算法: 代码: include // 划分函数,根据a[left]对a[left..right]进行划分 int partition(int a[], int left, int right) { int pivot = a[left]; // 选…

Linux模板机优化实操

Kylin与Ubuntu系统的模板机优化防火墙,selinux防火墙关闭点击查看代码 systemctl stop firewalld systemctl disable firewalld#ubuntu系统 systemctl disable ufw systemctl stop ufw防火墙检查点击查看代码…

渗透知识靶场实战

渗透知识靶场实战BupLoaderKeygen和 DVWA 的下载地址:1)Github 下载地址https://github.com/h3110w0r1d-y/BurpLoaderKeygen2)网盘下载地址:https://panbaiducom/s/1XTu6riBMf0lfFOhbXdHzlQ?pwd=9999靶机的 VMware 虚…

第179-180天:横向移动篇入口切换SMB共享WMI管道DCOM组件Impacket套件CS插件

学习的目的 windows 2012以上默认关闭了Wdigest,所以攻击者无法通过内存获取到明文密码 为了针对以上情况 所以有四种方法解决: 1.利用(PTH,PTK)等进行移动不需要明文 2.利用其他服务协议(SMB/WMI等进行哈希移动)…

游记 CSP-S2025

CSP-S 2025 广州市第六中学海珠校区 2025.11.1游记 CSP-S 2025 初赛 初赛太难了,没有满分。感觉出题人已经换了几次了,这次的题目显然有歧义或漏洞,选手要猜测出题人的想法,这一点也不好,例如我错的那道题就是这样…

VRP基本配置命令

1. 远程配置system-view # 系统视图 sysname AR1 # 重命名设备 interface G... 0/0/1 # 配置接口 ip address 192.168.1.1 24 # 设置ipuser-interface vty 0 4 # 允许同时5个人可以进入调试本台设备。5个窗口 au…

2025 年 11 月 CBN 砂轮厂家最新推荐:结合剂迭代 + 精度优化,高耐用产品选购指南

工业磨削领域对 CBN 砂轮的耐用性与适配性需求日益严苛,结合剂性能与加工精度成为核心考量指标。本次推荐依托行业权威协会 2025 年度专项测评结果,测评覆盖 40 余家源头厂家,采用 “四维十二项” 量化评估法 —— …

Newton迭代法-----牛顿迭代法求解高次方函数的近似根

Newton迭代法-----牛顿迭代法求解高次方函数的近似根牛顿迭代法是一种通过不断用函数切线逼近根的数值方法,核心优势是收敛速度快,常用于求解方程 f(x)=0 的实根,但对初始值选择有要求。 一、基本原理:从几何角度理…

2025 年 11 月 CBN 砂轮厂家最新推荐:磨料优化 + 工艺升级,高适配产品选购指南

当前工业磨削领域对 CBN 砂轮的性能要求持续提升,磨料纯度、工艺精度直接影响加工效率与成品质量。本次推荐基于行业权威协会最新测评数据,测评覆盖 30 余家源头厂家,通过 “三维九项” 评估体系筛选 —— 从技术维…

解码LVGL样式

LVGL 样式系统:核心组成与特性 样式是控制控件外观(颜色、圆角、字体等)的核心机制,其设计围绕 “部件针对性控制”“状态动态切换” 和 “高效复用管理” 三大原则展开。 样式核心组成 样式部件(Part):控件的 …

2025 年 11 月 CBN 砂轮厂家最新推荐:磨粒精筛 + 工艺焕新,高稳定产品选购指南

工业磨削作业对 CBN 砂轮的稳定性与磨削效率要求不断提高,磨粒纯度与生产工艺成为关键影响因素。本次推荐基于行业权威协会 2025 年第三季度专项测评结果,测评覆盖 50 余家源头厂家,采用 “三维十项” 科学评估体系…

设备调试基础实验

ping -6 www.baidu.com # 使用ipv6平百度华为路由器: pwd # flash:/ 根目录 dir # 等于ls mkdir # 创建文件夹 rmdir # 删除文件夹 rename 文件名 新文件名 # 修改文件名 copy 文件 文件 # 复制文件 move # 移…