欢迎来到天天文库
浏览记录
ID:37963020
大小:410.10 KB
页数:51页
时间:2019-06-04
《计算机软件34算法和计算机软件理论基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章计算机软件3.4算法和计算机软件理论基础3.1计算机软件及计算机软件技术3.2操作系统3.3程序设计语言及语言处理程序3.4算法和数据结构3.4.1算法3.4.2数据结构算法与程序软件的主体是程序,程序的核心是算法要使计算机解决某个问题,首先针对问题设计一个解题步骤,然后在根据解题步骤编写程序并交给计算机执行。这个“解题步骤”就是算法。算法与程序算法(Algorithm):问题求解规则的一种过程描述。在算法中要精确定义一系列规则,这些规则指定了相应的操作顺序,目标是在有限的步骤内得到所求问题的解答。算法设计方
2、法:由粗到细,由抽象到具体的逐步求精方法程序:对解题对象和解题步骤用程序语言进行的一种描述。程序中用具有一定结构的变量来表示问题的对象用函数和语句来实现解题的操作“算法”和“数据结构”是编写程序所要首先考虑的两个重要方面。3.4.1算法算法就是解决问题的方法与步骤计算机求解问题的步骤(1)确定并理解问题;(2)寻找解决问题的方法与步骤,并将其表示成算法(Algorithm);(3)使用某种程序设计语言描述该算法(编程),并进行调试;(4)运行程序,获得问题的解答;(5)进行评估,改进算法和程序算法是解决问题的方法与
3、步骤例:有三个硬币,其中一个是伪造的,另两个是真的,伪币与真币重量略有不同。现在提供一座天平,如何找出伪币呢?分析:方法明确而有序按提供的条件进行操作任何人均可仿照进行(共享智能)开始C是伪币B是伪币A是伪币A=B?A=C?是否否是关于算法的三方面问题如何确定算法(算法设计)?如何表示算法(算法表示)?如何使算法更有效(算法分析)?2.算法设计举例例如,要对包含n个整数元素的数组A按元素值由小到大排序。第1遍,给出粗略的思路:①从所有整数中选一个最小的,作为已排好序的第一个数;②在剩下的未排序整数中选出最小的,放在
4、已排好序列的最后一个数后面;③反复执行②,直到所有整数都放到已排好的序列中。第2遍,细化,考虑“序列存放在何处”,如何“反复执行”等。用“伪代码”描述为:fori=1ton{选出A[i]到A[n]中最小的元素,设为A[j];交换A[i]和[j];}筛选法排序2134621346不交换交换3124641236交换交换6123461234交换62134交换交换631246412364123交换6421364312交换64312交换64321第一轮比较第二轮比较第三轮比较第四轮比较筛选法排序例:筛选法排序。(设从大到小排
5、序)[分析]:将N个无序数据存放在数组中,对数组进行N-1轮扫视。第一轮扫视:将A(1)与A(2)比较,若A(1)6、比较ForI=1ToN–1NextI1.确定排序需要几轮的比较2.进行每一轮的比较ForJ=ToNextJ1.确定排序需要几轮的比较2.进行每一轮的比较3.在每一轮比较中,比较两个数的大小,根据比较结果决定是否交换两个数IfA(I)7、AsIntegerPrivateSubCmd数据准备_Click()DimIAsIntegerRandomizeForI=1To10A(I)=Int((100-9)*Rnd)+1Text1=Text1&Str(A(I))NextIEndSub返回算法设计举例第3遍,具体给出如何选最小的元素,交换元素等,整合算法。第4遍,选择程序语言编程,如用C语言编写的函数模块sort如下:voidsort(intA[],intn){inti,min,t;for(i=0;i8、;k++)if(A[k]
6、比较ForI=1ToN–1NextI1.确定排序需要几轮的比较2.进行每一轮的比较ForJ=ToNextJ1.确定排序需要几轮的比较2.进行每一轮的比较3.在每一轮比较中,比较两个数的大小,根据比较结果决定是否交换两个数IfA(I)7、AsIntegerPrivateSubCmd数据准备_Click()DimIAsIntegerRandomizeForI=1To10A(I)=Int((100-9)*Rnd)+1Text1=Text1&Str(A(I))NextIEndSub返回算法设计举例第3遍,具体给出如何选最小的元素,交换元素等,整合算法。第4遍,选择程序语言编程,如用C语言编写的函数模块sort如下:voidsort(intA[],intn){inti,min,t;for(i=0;i8、;k++)if(A[k]
7、AsIntegerPrivateSubCmd数据准备_Click()DimIAsIntegerRandomizeForI=1To10A(I)=Int((100-9)*Rnd)+1Text1=Text1&Str(A(I))NextIEndSub返回算法设计举例第3遍,具体给出如何选最小的元素,交换元素等,整合算法。第4遍,选择程序语言编程,如用C语言编写的函数模块sort如下:voidsort(intA[],intn){inti,min,t;for(i=0;i8、;k++)if(A[k]
8、;k++)if(A[k]
此文档下载收益归作者所有