收藏 分享(赏)

01软件基础徐士良第一章 算法_40学时.ppt

上传人:tkhy51908 文档编号:7293070 上传时间:2019-05-13 格式:PPT 页数:108 大小:1.07MB
下载 相关 举报
01软件基础徐士良第一章 算法_40学时.ppt_第1页
第1页 / 共108页
01软件基础徐士良第一章 算法_40学时.ppt_第2页
第2页 / 共108页
01软件基础徐士良第一章 算法_40学时.ppt_第3页
第3页 / 共108页
01软件基础徐士良第一章 算法_40学时.ppt_第4页
第4页 / 共108页
01软件基础徐士良第一章 算法_40学时.ppt_第5页
第5页 / 共108页
点击查看更多>>
资源描述

1、第一章 算法计算机软件技术基础钥骇霸归注做唉比咬农肮车阳瘁殴锗葬媒洒尸坦购伪廷萧泡醚缔功公琳规01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 21.1 集合的基本概念1、集合的基本概念:所谓集合,就是指若干个或无穷多个具有相同属性的元(元素)的集体。集合的两个表示方法:列举法:将此集合中的元素全部列举出来,或者列出若干项但能根据规律可知其所有的元素,这就是列举法;性质叙述法:用性质叙述法表示一个集合是将集合中的元素所具有的属性出来。尘擦棋宣咳炬表吝旦赞碳放硼苍苏税毕诽雌力匙功杜壬日至首办颠襄使吼01软件基础徐士良第一章算法_40

2、学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 31.1 算法的基本概念2、集合的基本运算:两个集合的并两个集合的交两个集合的差统淘升沛绅骗爆汞杠宅抢乃旅剿儒款计贱帅宪岸天绑巍淋盲籍呵斯埠湿调01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 41.1 算法的基本概念2、集合的基本性质:结合律分配律: 骆休谢茂呀疵摄霖瓤包噶陌吊喝耙主酬胶搏矾读涪濒宵盐世朝双罐闽唉到01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 51.1 算法的基本概念

3、3、映射设 A、 B是两个非空集合,根据一定的法则,对于每个 ,在 B中都有唯一确定的元素 y与之对应,称 f是定义在 A上而在 B中取值的映射,记为 f:A-B,并将 x与 y的关系记为 y=f(x)。其中, x称为自变元, y称为 f作用下 x的像。匠厚景畔雕畜滴倒醇且逸养扯鼻燃旦铬孙萨冗瞻付筋昼姆箱论菱纠萎惮绎01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 61.1 算法的基本概念啼史薪刹锁倾邻枪夯优纳勺慢没短蓬幻嫩跺盏琴庇辨烘托羽刮交敞享新暗01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时*

4、计算机软件技术基础 第一章 算法 7第一章 算法 1.1 算法的基本概念 1.2 算法设计基本方法 1.3 算法的复杂度分析什么是算法;算法的基本特征。1. 列举法; 2. 递推法; 3. 递归法; 4. 减半递推法; 5. 回溯法。算法的时间复杂度。胯困滁匆洁硝卡佩湾呸氢庆狈魔窄糠穷痘疾设烂恼淌英纽畅忻赦囤彬陇浅01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 81.1 算法的基本概念 用计算机解决一个实际问题,首先要进行程序设计。通常,程序设计主要包括两个方面: 行为特性的设计:要求将解决实际问题的每个细节准确地加以定义,并且

5、还应当将全部解题过程完整地描述出来,这一过程即是算法的设计; 结构特性的设计:指确定适合的数据结构。辉贾展烙酬勾罚簇窖朋奔链诽淬蛾济暇函淳郴试埃慈漠乃涅拟二传客滇拷01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 91.1 算法的概念 定义: “算法 ”是指解题方案的准确而完整的描述。 算法可解:对于一个问题,如果可以通过一个计算机程序,在有限的存储空间内运行有限长的时间而得到正确的结果。程序与算法的区别:程序可以作为算法一种描述,但程序通常还需考虑很多与方法和分析无关的细节问题,因为在编写程序时要受到计算机系统运行环境的限制。结

6、论:通常,程序设计不可能优于算法的设计。麦莉矽拢练赶磺宠整糕好药痘雹遮迭垛品拜恐滋暮眠算摆疟冕豹袄掏蕴愁01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 101.1.1 算法的基本特征 能(可)行性 (effectiveness) 算法中的每一个步骤必须能够实现。 算法执行的结果要能够达到预期的目的。 例如:三个量的和,如果采用不同的运算顺序,就会得到不同的结果:数据存储的实际范围掣劫佯谓擒剃邑任抢捉滁梦侍高增恃酷抖姜野叶邱止谷谭又妈铜勿漳醛窟01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软

7、件技术基础 第一章 算法 11 确定性 (definiteness) 算法中每一个步骤都必须是有明确定义的,不允许有模棱两可的解释,也不允许有多义性。 反映了算法与数学公式的明显差别: 针对某种特殊情况,数学公式是正确的,但按此数学公式设计的计算过程可能会使计算机系统无所适从。因为没有考虑异常情况的出现。 举例: “输入一个 x,若 x比 1大很多,则输出数字 1,否则输出数字 0。 ”壮勘僚滴妙埋拒钠轨轴癌曹栅孪锻喷养予应拙橙耻霍苇荚额碘婶电古蛰件01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 12 有穷性 (finitene

8、ss) 算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。 举例:一个数的无穷级数表示只是一个计算公式,而根据精度要求确定的计算过程才是有穷的算法。 另一种定义:合理的执行时间。讳笆舞陌雄琴灼渐豢囤间券积痊掩克唱局涌空褒把处愉辣促裸收答堕镀匠01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 13补充:无穷级数 无穷级数是研究有次序的可数无穷个数或者函数的和的收敛性及和的数值的方法。 举例:假定有一个无穷数列: u1, u2, u3, . , un, .其前 n项的和为: Sn = u1 + u2 + u3 + .

9、 + un由此得出另一个新无穷数列: S1, S2, S3, , Sn ,.当 n无限增加时, Sn趋向一个极限;如果极限存在,这个无穷数列就叫做是收敛的无穷级数,如果极限不存在,这个数列就是发散的。只有收敛的无穷级数存在一个和 S。S = u1 + u2 + u3 + . + un + .巩悯查尔遮抢泰捕臭剔碾啄离陇囤累暑畸掐瘦爱黍蠢尧削使肃松丢没棘侠01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 14 拥有足够的情报 一个算法是否有效还取决于为算法所提供的情报是否足够。 通常,算法中的各种运算总是要施加到各个运算对象上,而这

10、些运算对象又可能具有某种初始状态,这是算法执行的起点或是依据。 因此,一个算法执行的结果总是与输入的初始数据有关,不同的输入会有不同的输出。当提供的情报不够时,算法并不是有效的。耕梭烯诗功陕但哗帐垢债拯雕纤拿紧纠十数搞拐避崩鸡信掘釉喀便往坏球01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 15结论 算法是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。 算法是对特定问题求解步骤的一种描述,它是指令的有限序列。顽半颅六敢酌唇侦奇涩疤办召殆够溃织约佳柔智陕拧真销空峭夜统疡毕贴01软件基

11、础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 161.1.2 算法的基本要素 算法通常由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。 算法中对数据的运算和操作 算术运算:加、减、乘、除、整除、取余等运算; 逻辑运算: “与 ”、 “或 ”、 “非 ”等运算; 关系运算: “大于 ”、 “小于 ”、 “等于 ”、 “不等于”等运算。 数据传输:赋值、输入、输出等操作。袋利寇盲爹顿修葫誓痘玉料惠片淑侍虽棺驱疆铝擂几俩睁忿缴惫坯疏陈颗01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软

12、件技术基础 第一章 算法 17 算法的控制结构 定义:算法中各操作之间的执行顺序。 描述算法的工具:传统流程图; N-S结构化流程图;算法描述语言。 三种基本控制结构:顺序、选择、循环。AB A BCT FACTF汇元泪距雹性陵伐诽疯泞岛庶边甲铂祝抠嚼斯埔染认谚挖欺钝压戚辽舍咎01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 181.2 算法设计的基本方法 计算机解题的过程实际上是在实施某种算法,这种算法通常称为计算机算法,与人工处理的算法不同。 举例:肘破雷恬削涪李时岛浙鄙章帆扁愿闰动仅杖警遭迅李溢赘荒无烈未讣拧忠01软件基础徐

13、士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 19算法设计的基本方法 人工处理的步骤: 找出被积函数 f(x)的源函数 F(x); 利用牛顿 -莱布尼兹公式计算 。 计算机处理方式:采用数值积分法,根据实际被积函数的类型以及精度要求选择相应的算法。剂迅面瑰蚤侠氢章够梯侄匆添朵抚弱途乍鬃悍罢谬要咋厚惫痪屁箍呸茄娘01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 20列举法 基本思想:根据提出的问题,列举所有可能的情况,并用问题中给定的条件检验哪些是需要的,哪些是不需要的。 列举法

14、常用于解决 “是否存在 ”或 “有多少种可能 ”等类型的问题,例如求解不定方程的问题。 特点:算法比较简单,但当列举的可能情况较多时,执行列举算法的工作量将会很大。鄂腔误枯巴惹瞳授营铝甭热务艳糙市陛邀霓寂闷鬼水浆树瓮脖徐话捧卞破01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 21举例:百鸡百钱问题 例 1.1:设每只母鸡值 3元,每只公鸡值 2元,两只小鸡值 1元。现要用 100元钱买 100只鸡,设计买鸡方案。(百鸡百钱问题) 假设买母鸡 i只,公鸡 j只,小鸡 k只。蝎惊汇炊惜役措唾你桩巡硫眩肆辞界佯柏畏漾杏塔急宋流苛腿欺市

15、汗辩磁01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 22 最粗略的列举算法如下: 算法: 求解百鸡百钱问题。 for i 0 to 100 do for j 0 to 100 do for k 0 to 100 do m = i j k n = 3i 2j 0.5k if ( ( m 100 ) and ( n 100 ) ) then output i, j, k returni表示购买的母鸡个只数j表示购买的公鸡个只数k表示购买的小鸡个只数计算购买鸡的总数 m以及总价格 n态瞎袭鸦窑浇乃凄匠源薄叭荒怨自鸳良撼渴思畅免撤创肿

16、诊仰句疵智钢蓟01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 23i=0i100j=0j100Tk=0k100T计算鸡的总只数 m和购买鸡的总价格 nm=100&n=100输出 m和 nTk+j+i+TFF结束F1013F垂哟仿霍泌带沤溅轰计扫敢照尝眉骋铣穷决辟护蕉仙缝滨敌乎嗓绷慧缓来01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 24 改进算法: 求解百鸡百钱问题。 for i 0 to 33 do for j 0 to 50 1.5i do k = 100 i

17、 j if ( 3i 2j 0.5k 100 ) then output i, j, k return 总循环次数为:运行结果如下:02 30 6805 25 7008 20 7211 15 7414 10 7617 5 7820 0 80咆道脱肆算蹿妄托净自底乎朴微汕饥僧檀火惨鸽性希鸡汝湖伙产几铣袜袒01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 25递推 基本思想:从已知的初始条件出发,逐次推出所要求的各中间结果和最后结果。 补充举例:计算下列定积分递推算法在数值计算中极为常见,但对于数值型的递推算法必须要注意数值计算的稳定

18、性问题。咯仲灰秆杆韭武匆逛筐犊天虫婴豺嫌灿垛测烯棋橡裸焚蹈郑后揣勘挠杀晾01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 26 对上式稍作分析,可以发现相邻两个积分之间存在以下关系:从而得到递推公式:曙坏魄靡站簧膨侥呕灶澡翰括俭贩疗皇奋傈卞问雏肉判旬琢痕刘譬舷迟解01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 27 利用牛顿 -莱布尼兹公式可以计算出积分 I0的值:从而得到 21个积分的递推算法如下:近似值就意味着有误差假定初始值(情报)的误差为 殷旦算种喊蔡式清彭

19、堡龚催盎怖酚杀撑充剖熏飞椽汽构魔蘸啪玛挝称邵夸01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 28 表 1.1 第一种递推公式得到的结果捏炕蛤藩左翼注长察勋敲申战支救弥蹦轻曲草语慧螺墟郡金匣弹嘿觉垣驼01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 29 实际上,根据关系式还可以得到另一个递推公式粱钨燎陋筒哥场蓟亩司齿舞荷笼前完冲繁页稽歉蹿材哺户苦郎渺蘑劲痔淖01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时* 计算机软件技术基础 第一章 算法 30 如果要使用递推公式 (1.5)时,需要确定初始值 I20。 有如下不等式:可以得到:最后可得:当 n=21时,有由于 很接近,因此可用它们的平均值作为 I20的近似值,即近似值就意味着有误差潦事挟澜浙皖暖腆静萄围具鼓蜀一艾脱钝蹄镰施弯宿郝纪孰锡心楚此迷螺01软件基础徐士良第一章算法_40学时01软件基础徐士良第一章算法_40学时

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报