《大学计算机》第10讲 算法基础(1).pptxVIP

  • 1
  • 0
  • 约2.65千字
  • 约 16页
  • 2025-08-29 发布于广东
  • 举报

《大学计算机》第10讲 算法基础(1).pptx

10算法基础(一)

授课教师:

Algorithmbasis

利用文本编辑软件,通过流程图方式,描述算法的实现过程,并进行求和。

(1)两个数的交换问题

例如:ab

(2)两个数的排序(递增或者递减)

例如:a,b

(3)任意三个数a、b、c比较大小,输出最大值。

例如:a,b,c

1、什么是算法?

算法---计算机与软件的灵魂。“算法”(Algorithm)一词源于数学家的名字:公元825年,阿拉伯数学家阿科瓦里茨米(AlKhowarizmi)写了著名的《波斯教科书》(PersianTextbook),书中概括了进行四则算术运算的计算规则。

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

算法是一个有穷规则的集合,它用规则规定了解决某一特定类型问题的运算序列,或者规定了任务执行或问题求解的一系列步骤。算法是利用计算机解决问题的处理步骤,简而言之,算法就是解决问题的步骤。

2、一个算法应该具有以下五个重要的特征:

有穷性(Finiteness):一个算法在执行有穷步规则或者有限个步骤之后必须结束。

确定性(Definiteness):算法的每一个步骤必须要确切地定义,不得有歧义性。

输入(Input):一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;

输出(Output):算法有一个或多个的输出/结果,即与输入有某个特定关系的量,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;

可行性(Effectiveness):算法中有待执行的运算和操作必须是相当基本的(可以由机器自动完成),并能在有限时间内完成。

华罗庚在数学普及读物《统筹方法平法及补充》中,以“泡茶”为例,

阐明了设计和选择合适的、优化的算法的重要性。

算法有优劣,应该优而取

3、算法的分类

算法可以宏泛的分为三类:

(1)有限的,确定性算法这类算法在有限的一段时间内终止。

(2)有限的,非确定算法这类算法在有限的时间内终止。

(3)无限的算法由于没有定义终止定义条件,或定义的条件无法由输入的数据满足而不终止运行的算法。

算法可大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法,厄米变形模型,随机森林算法。

经典的算法有很多,如欧几里德算法(又称辗转相除法),刘徵割圆术(无限逼近圆面积),秦九韶算法(解决多项式的求值问题)

随着计算机的发展,算法在计算机方面已有广泛的发展及应用,

(1)用随机森林算法,来进行头部姿势的估计;

(2)用遗传算法来解决弹药装载问题;

(3)用信息加密算法在网络传输中的应用;

(4)并行算法在数据挖掘中的应用等。

算法有哪些例子?

给计算机编程带来方便的算法种类繁多,如技术计算(实现技术计算的算法,迪杰斯特拉法,素数,最大公约数)、排序(冒泡、选择、归并、希尔等)、查找(线性、二分法)、字符串模式匹配(KMP算法)。

你知道一些典型的算法类问题吗?

算法类问题:由一个算法可以解决的问题,寻找一个(唯一的)方法(算法)以解决同一类型的无穷多个单个问题系列的问题

哥尼斯堡七桥问题:“寻找走遍这7座

桥且只许走过每座桥一次最后又回到原出发点的路

径”“对给定的任意一个河道图与任意多座桥判定

可能不可能每座桥恰好走过一次?”。

汉诺塔问题:有三根柱子,梵天将64个直

径大小不一的金盘子按照从大到小的顺序依次套放

在第一根柱子上形成一座金塔,要求每次只能移动

一个盘子,盘子只能在三根柱子上来回移动不能放

在他处,在移动过程中三根柱子上的盘子必须始终

保持大盘在下小盘在上。

其他如:背包问题,丢番图方程可

解性问题;……

5、算法的描述方式

描述算法的方法有多种,常用的有自然语言、伪代码、PAD图和结构化流程图等,其中最普遍的是流程图。

PAD图

流程图

伪代码

自然语言

6、算法思想的精确表达--算法设计包括什么?

算法的数据结构设计---问题或算法相关的数据之间的逻辑关系及存储关系的设计

如何构造和表达处理的规则,以便能够按规则逐步计算出结果?

如何将数学模型中的数据转为计算机可以存储和处理的数据?

算法的控制结构设计---算法的计算规则或计算步骤设计

算法思想的精确表达-

文档评论(0)

1亿VIP精品文档

相关文档