导航:首页 > 源码编译 > 简单算法的设计举例

简单算法的设计举例

发布时间:2024-08-21 23:43:07

⑴ 简单算法的概念,并举例说明它在程序中的作用。

1 什么叫算法
算法(Algorithm)是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。在计算机科学中,算法要用计算机算法语言描述,算法代表用计算机解一类问题的精确、有效的方法。算法+数据结构=程序,求解一个给定的可计算或可解的问题,不同的人可以编写出不同的程序,来解决同一个问题,这里存在两个问题:一是与计算方法密切相关的算法问题;二是程序设计的技术问题。算法和程序之间存在密切的关系。
算法是一组有穷的规则,它们规定了解决某一特定类型问题的一系列运算,是对解题方案的准确与完整的描述。制定一个算法,一般要经过设计、确认、分析、编码、测试、调试、计时等阶段。
对算法的学习包括五个方面的内容:① 设计算法。算法设计工作是不可能完全自动化的,应学习了解已经被实践证明是有用的一些基本的算法设计方法,这些基本的设计方法不仅适用于计算机科学,而且适用于电气工程、运筹学等领域;② 表示算法。描述算法的方法有多种形式,例如自然语言和算法语言,各自有适用的环境和特点;③确认算法。算法确认的目的是使人们确信这一算法能够正确无误地工作,即该算法具有可计算性。正确的算法用计算机算法语言描述,构成计算机程序,计算机程序在计算机上运行,得到算法运算的结果;④ 分析算法。算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。分析算法可以预测这一算法适合在什么样的环境中有效地运行,对解决同一问题的不同算法的有效性作出比较;⑤ 验证算法。用计算机语言描述的算法是否可计算、有效合理,须对程序进行测试,测试程序的工作由调试和作时空分布图组成。

2、算法的特性

算法的特性包括:① 确定性。算法的每一种运算必须有确定的意义,该种运算应执行何种动作应无二义性,目的明确;② 能行性。要求算法中有待实现的运算都是基本的,每种运算至少在原理上能由人用纸和笔在有限的时间内完成;③ 输入。一个算法有0个或多个输入,在算法运算开始之前给出算法所需数据的初值,这些输入取自特定的对象集合;④ 输出。作为算法运算的结果,一个算法产生一个或多个输出,输出是同输入有某种特定关系的量;⑤ 有穷性。一个算法总是在执行了有穷步的运算后终止,即该算法是可达的。
满足前四个特性的一组规则不能称为算法,只能称为计算过程,操作系统是计算过程的一个例子,操作系统用来管理计算机资源,控制作业的运行,没有作业运行时,计算过程并不停止,而是处于等待状态。

3、算法的描述

算法的描述方法可以归纳为以下几种:
(1) 自然语言;
(2) 图形,如N�S图、流程图,图的描述与算法语言的描述对应;
(3) 算法语言,即计算机语言、程序设计语言、伪代码;
(4) 形式语言,用数学的方法,可以避免自然语言的二义性。
用各种算法描述方法所描述的同一算法,该算法的功用是一样的,允许在算法的描述和实现方法上有所不同。
人们的生产活动和日常生活离不开算法,都在自觉不自觉地使用算法,例如人们到商店购买物品,会首先确定购买哪些物品,准备好所需的钱,然后确定到哪些商场选购、怎样去商场、行走的路线,若物品的质量好如何处理,对物品不满意又怎样处理,购买物品后做什么等。以上购物的算法是用自然语言描述的,也可以用其他描述方法描述该算法。

⑵ 小学数学简便算法有几种并举例说明

例1 1.24+0.78+8.76
解 原式=(1.24+8.76)+0.78
=10+0.78
=10.78
【解题关键和提示】
运用加法的交换律与结合律,因为1.24与8.76结合起来,和正好是整数10。
例2 933-157-43
解 原式=933-(157+43)=933-200=733
【解题关键和提示】
根据减法去括号的性质,从一个数里连续减去几个数,可以减去这几个数的和。因此题157与43的和正好是200。
例3 4821-998

=4821-1000+2=3823
【解题关键和提示】
此题中的减数998接近1000,我们就把它变成1000-2,根据减法去括号性质,原式=4821-1000+2,这样就可口算出来了,计算熟练后,998变成1000-2这一步可省略。
例4 0.4×125×25×0.8
解 原式=(0.4×25)×(125×0.8)=10×100=1000
【解题关键和提示】
运用乘法的交换律和结合律,因为0.4×25正好得10,而125×0.8正好得100。
例5 1.25×(8+10)
解 原式=1.25×8+1.25×10=10+12.5=22.5
【解题关键和提示】
根据乘法分配律,两个加数的和与一个数相乘,可用每一个加数分别与这个数相乘,再把所得的积相加。
例6 9123-(123+8.8)
解 原式=9123-123-8.8=9000-8.8=8991.2
【解题关键和提示】
根据减法去括号的性质,从一个数里减去几个数的和,可以连续减去这几个数,因为9123减去123正好得9000,需要注意的是减法去掉括号后,原来加上8.8现已变成减去8.8了。
例7 1.24×8.3+8.3×1.76
解 原式=8.3×(1.24+1.76)=8.3×3=24.9
【解题关键和提示】
此种解法是乘法分配律的逆运用。即几个数同乘以一个数的和,可用这几个数的和乘以这个数。
例8 9999×1001
解 原式=9999×(1000+1)=9999×1000+9999×1
=10008999
【解题关键和提示】
此题把1001看成1000+1,然后根据乘法的分配律去简算。
例9 32×125×25
解 原式=4×8×125×25
=(4×25)×(8×125)
=100×1000
=100000
【解题关键和提示】
把32分解成4×8,这样125×8和25×4都可得到整百、整千的数。

⑶ 算法与程序的区别与联系

算法和程序的区别是:

(1) 两者定义不同。算法是对特定问题求解步骤的描述,它是有限序列指令。而程序是实现预期目的而进行操作的一系列语句和指令。

说通俗一些算法是解决一个问题的思路,程序,是解决这些问题所具体好写的代码。算法没有语言界限。他只是一个思路。为实现相同的一个算法,用不同语言编写的程序会不一样。

(2)两者的书写规定不同。程序必须用规定的程序设计语言来写,而算法很随意。算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。算法常常含有重复的步骤和一些逻辑判断。

简单算法举例 例:求 1*2*3*4*5

步骤 1 :先求 1*2 ,得到结果 2 。

步骤 2 :将步骤 1 得到的乘积 2 再乘以 3 ,得到结果 6 。

步骤 3 :将步骤 2 得到的乘积 6 再乘以 4 ,得到结果 24 。

步骤 4 :将步骤 3 得到的乘积 24 再乘以 5 ,得到最后结果 120 。

算法与程序的联系 :

算法和程序都是指令的有限序列 ,但是程序是算法,而算法不一定是 程序。程序 = 数据结构 + 算法。算法的主要目的在于为人们提供阅读了解所执行的工作流程与步骤。数据结构与算法要通过程序的实现,才能由计算机系统来执行。可以这样理解,数据结构和算法形成了可执行的程序。

(3)简单算法的设计举例扩展阅读

算法的要素:

一、数据对象的运算和操作:计算机可以执行的基本操作是以指令的形式描述的。一个计算机系统能执行的所有指令的集合,成为该计算机系统的指令系统。一个计算机的基本运算和操作有如下四类:

1、算术运算:加减乘除等运算。

2、逻辑运算:或、且、非等运算。

3、关系运算:大于、小于、等于、不等于等运算。

4、数据传输:输入、输出、赋值等运算。

二、算法的控制结构:一个算法的功能结构不仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。

⑷ 算法有哪些特点并一一举例说明

1.决策树
优点:
计算量简单,可解释性强,比较适合处理有缺失属性值的样本,能够处理不相关的特征;
擅长对人、地点、事物的一系列不同特征、品质、特性进行评估
缺点:
容易过拟合(后续出现了随机森林,减小了过拟合现象),使用剪枝来避免过拟合;
适用数据范围:
数值型和标称型
CART分类与回归树:
决策树分类方法,采用基于最小距离的基尼指数估计函数,用来决定由该子数据集生成的决策树的拓展形。决策树回归方法,采用切分点与切分变量来计算的损失来估计函数。如果目标变量是标称的,称为分类树;如果目标变量是连续的,称为回归树。分类树是使用树结构算法将数据分成离散类的方法。
优点:
非常灵活,可以允许有部分错分成本,还可指定先验概率分布,可使用自动的成本复杂性剪枝来得到归纳性更强的树,产生的分类规则易于理解,准确率较高。
缺点:
在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。此外,C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。
2.随机森林
特点:
准确率可以和Adaboost相媲美,对错误和离群点更鲁棒。准确率依赖于个体分类器的实力和它们之间的依赖性。理想情况是保持个体分类器的能力而不提高它们的相关性。对每次划分所考虑的属性数很敏感。通常选取logn2+1个属性,其中n是数据集的实例数。(一个有趣的观察是,使用单个随机选择的属性可能导致很好的准确率,常常比使用多个属性更高。)
场景举例:用户流失分析、风险评估
优点:
不易过拟合,可能比Bagging和Boosting更快。由于在每次划分时只考虑很少的属性,因此它们在大型数据库上非常有效。有很好的方法来填充缺失值,即便有很大一部分数据缺失,仍能维持很高准确度。给出了变量重要性的内在估计,对于不平衡样本分类,它可以平衡误差。可以计算各实例的亲近度,对于数据挖掘、检测离群点和数据可视化非常有用。
随机森林方法被证明对大规模数据集和存在大量且有时不相关特征的项(item)来说很有用
缺点:
在某些噪声较大的分类和回归问题上会过拟合。对于有不同级别的属性的数据,级别划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产生的属性权值是不可信的。

⑸ 举例说明算法的应用

举例说明算法的应用如下:

1、递推算法(常用级数、数列求和、二分法、梯形积分法、穷举法等)。

2、排序算法(选择法、冒泡法)。

3、查找算法(顺序查找、折半查找)。

4、有序数列的插入、删除操作。

5、初等数论问题求解的有关算法(最大数、最小数、最大公约数、最小公倍数、素数等)。

6、矩阵的处理(生成、交换及基本运算)。

算法雹盯虚中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机则御化算法在内的一些算法,包含了一些随机输入。

阅读全文

与简单算法的设计举例相关的资料

热点内容
区间测速算法不正确 浏览:331
appstore转到哪个国家比较好 浏览:924
程序员为什么被公司埋炸弹 浏览:941
linuxds18b20驱动 浏览:137
集群大数据编译命令 浏览:536
什么狼人杀app好 浏览:303
hadoop压缩命令 浏览:655
croe壳命令 浏览:77
抽干文件夹图片 浏览:950
android光感 浏览:968
php业务流 浏览:971
devc编译错了怎么办 浏览:300
编译系统都有哪些部分 浏览:707
数据库技术pdf 浏览:232
如何把网页部署到服务器上 浏览:634
php用户组 浏览:785
抚顺自动数控编程软件 浏览:747
如何判断是否可以通过编译 浏览:929
卫士通加密官网 浏览:55
程序员需要会盲打么 浏览:448