什么是算法,它的五大特性是什么,算法和程序的关系是什么

什么是算法,它的五大特性是什么,算法和程序的关系是什么,第1张

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。

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

有穷性(Finiteness)

算法的有穷性是指算法必须能在执行有限个步骤之后终止;

确切性(Definiteness)

算法的每一步骤必须有确切的定义;

输入项(Input)

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

输出项(Output)

一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;

可行性(Effectiveness)

算法中执行的任何计算步骤都是可以被分解为基本的可执行的 *** 作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。

算法和程序的关系是:

算法就是程序的灵魂,一个需要实现特定功能的程序,实现它的算法可以有很多种,所以算法的优劣决定着程序的好坏。

程序就是遵循一定规则的、为完成指定工作而编写的代码。有一个经典的等式阐明了什么叫程序:程序

=

算法

+

数据结构

+

程序设计方法

+

语言工具和环境

算法和程序嘛。。。对过程化程序来说,有个沃思公式:算法+数据结构=程序。也就是说一个程序主要包含以下两方面的信息:1、对数据的描述。在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式。这就是数据结构(data structure)。2、对 *** 作的描述。即要求计算机进行 *** 作的步骤,也就是算法(algorithm)。

算法当然要在有穷步后终止啊,不然计算机受得了吗。。。算法的特性就包含有穷这一条,而且有穷性是指在合理的范围之内,你让一个算法持续几千年,也不合常理。

希望对你有用。

算法步骤:第一步,要确定表示和的变量s和计数变量i,并赋值,一般情况下,赋s=0 i=0;第二步,确定使用哪种循环结构,本题使用当型循环结构,确定判断条件i≤9 满足条件时,执行第三步,不满足条件时,执行第四步;第三步:执行,i=i+1;第四步:输出s;程序结束程序如下:S=0i=0WHILE i<=9 S=S+1/2^i i=i+1ENDPRINT SEND运行该程序,输出:S=19980 解析 分 析: 算法分析: 第一步 选择一个变量S表示和,并赋给初值0 再选取一个循环变量i,并赋值为0;第二步 开始进入WHILE循环语句,首先判断i是否小于9;第三步 为循环表达式(循环体) 用WEND来控制循环;第四步 用END来结束程序. 根据算法语句编写相应的程序语言,见参考答案试题 解析: 算法步骤:第一步,要确定表示和的变量s和计数变量i,并赋值,一般情况下,赋s=0 i=0;第二步,确定使用哪种循环结构,本题使用当型循环结构,确定判断条件i≤9 满足条件时,执行第三步,不满足条件时,执行第四步;第三步:执行,i=i+1;第四步:输出s;程序结束可写出程序如下:S=0i=0WHILE i<=9 S=S+1/2^i i=i+1ENDPRINT SEND运行该程序,输出:S=19980. (12分) 考点: 程序语言

算法是程序的核心内容,一个需要实现特定功能的程序,实现它的算法可以有很多种,所以算法的优劣决定着程序的好坏。

程序员很熟练的掌握了程序设计语言的语法,进行程序设计,软件开发的时候,就是将设计好的算法加上软件工程的理论才能做出较好的系统。

算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。

程序是指以某些程序设计语言编写,运行于某种目标结构体系上。

算法是理论

程序是实践

先定义好目标,然后设计出算法 算法会指导出程序的控制流和数据流

然后再根据算法, 一步步实现出代码

如果算法比较复杂,可以先实现伪代码,再真正实现编程语言代码

虽然算法与计算机程序密切相关,但二者也存在区别:计算机程序是算法的一个实例,是将算法通过某种计算机语言表达出来的具体形式;同一个算法可以用任何一种计算机语言来表达。

算法列表

图论

路径问题

0/1边权最短路径

BFS

非负边权最短路径(Dijkstra)

可以用Dijkstra解决问题的特征

负边权最短路径

Bellman-Ford

Bellman-Ford的Yen-氏优化

差分约束系统

Floyd

广义路径问题

传递闭包

极小极大距离 / 极大极小距离

Euler Path / Tour

圈套圈算法

混合图的 Euler Path / Tour

Hamilton Path / Tour

特殊图的Hamilton Path / Tour 构造

生成树问题

最小生成树

第k小生成树

最优比率生成树

0/1分数规划

度限制生成树

连通性问题

强大的DFS算法

无向图连通性

割点

割边

二连通分支

有向图连通性

强连通分支

2-SAT

最小点基

有向无环图

拓扑排序

有向无环图与动态规划的关系

二分图匹配问题

一般图问题与二分图问题的转换思路

最大匹配

有向图的最小路径覆盖

0 / 1矩阵的最小覆盖

完备匹配

最优匹配

稳定婚姻

网络流问题

网络流模型的简单特征和与线性规划的关系

最大流最小割定理

最大流问题

有上下界的最大流问题

循环流

最小费用最大流 / 最大费用最大流

弦图的性质和判定

组合数学

解决组合数学问题时常用的思想

逼近

递推/动态规划

概率问题

Polya定理

计算几何 / 解析几何

计算几何的核心:叉积 / 面积

解析几何的主力:复数

基本形

直线,线段

多边形

凸多边形 / 凸包

凸包算法的引进,卷包裹法

Graham扫描法

水平序的引进,共线凸包的补丁

完美凸包算法

相关判定

两直线相交

两线段相交

点在任意多边形内的判定

点在凸多边形内的判定

经典问题

最小外接圆

近似O(n)的最小外接圆算法

点集直径

旋转卡壳,对踵点

多边形的三角剖分

数学/数论

最大公约数

Euclid算法

扩展的Euclid算法

同余方程 / 二元一次不定方程

同余方程组

线性方程组

高斯消元法

解mod 2域上的线性方程组

整系数方程组的精确解法

矩阵

行列式的计算

利用矩阵乘法快速计算递推关系

分数

分数树

连分数逼近

数论计算

求N的约数个数

求phi(N)

求约数和

快速数论变换

……

素数问题

概率判素算法

概率因子分解

数据结构

组织结构

二叉堆

左偏树

二项树

胜者树

跳跃表

样式图标

斜堆

reap

统计结构

树状数组

虚二叉树

线段树

矩形面积并

圆形面积并

关系结构

Hash表

并查集

路径压缩思想的应用

STL中的数据结构

vector

deque

set / map

动态规划/记忆化搜索

动态规划和记忆化搜索在思考方式上的区别

最长子序列系列问题

最长不下降子序列

最长公共子序列

一类NP问题的动态规划解法

树型动态规划

背包问题

动态规划的优化

四边形不等式

函数的凸凹性

状态设计

规划方向

线性规划

常用思想

二分

最小表示法

KMP

Trie结构

后缀树/后缀数组

LCA/RMQ

有限状态自动机理论

排序

选择/冒泡

快速排序

堆排序

归并排序

基数排序

拓扑排序

排序网络

以上就是关于什么是算法,它的五大特性是什么,算法和程序的关系是什么全部的内容,包括:什么是算法,它的五大特性是什么,算法和程序的关系是什么、什么是算法什么是程序这两者之间有什么关系、如何用语句和算法写程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9672637.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存