《常用算法》PPT课件.ppt
《《常用算法》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《常用算法》PPT课件.ppt(37页珍藏版)》请在三一办公上搜索。
1、常 用 算 法-,排序算法-比较互换 选择法 冒泡法查找算法-顺序查找 折半查找素数的求法-定义法 筛选法解一元方程-牛顿迭代法 二分法数值积分-矩形法 梯形法 辛普生法数值转换-BODH,7.1 常用的排序算法,1:比较互换法基本过程(以降序为例):将第一个元素顺序与其后面的元素比较,比第一个大则进行交换,第一轮完毕后,最大的元素被挪到了第一个位置,第二轮从第二个元素开始重复上面的过程,结束后得到第二个最大的元素,如此下去经过 N-1 轮的比较,可将 N 个数排好,:举例原始数据:1,2,3,5,4 要求:降序,第 一 轮 比 较:,1 2 3 5 4,2 1 3 5 4,3 1 2 5 4
2、,5 1 2 3 4,5 1 2 3 4,第一轮结束,找到最大值 5,第 二 轮 比 较:,5 1 2 3 4,5 2 1 3 4,5 3 1 2 4,5 4 1 2 3,第二轮结束,找到第二最大值 4,第三轮结果:5 4 3 1 2,第四轮结果:5 4 3 2 1,公式表示:(N为排序的维数,OP为操作,降序为“”)for(i=1 to N-1)外层循环N-1次for(j=i+1 to N)内层依赖外层if(S(j)OP S(i))thent=S(i):S(i)=S(j):S(j)=t交换End ifNext jNext IVB例题点此进入,2:选择法排序,特点:比较後不立即互换元素,而是记
3、下其位置并在每一轮比较完毕后和()互换首先,比较的元素不同,以降序为例,是当前元素与上次比较後的最大元素进行比较,因此,在进行比较之前,要有一个初始化最大元素的过程其次,确定完毕的元素的互换是在每一轮完成后进行的,而不是在比较後进行的再次,互换元素的不同,为(i)和(iMax):举例原始数据:3,5,7,9,4 要求:降序,第一轮比较,初始化设最大元素下标为3579 iMax=1 iMax=23579 iMax=2 iMax=33579iMax=3 iMax=43579iMax=4 iMax=4S(1)S(iMax)的结果9573,如此下去,第二轮找到7,第三轮5,选择法的公式表示:,For
4、i=1 to N-1iMax=I初始化iMax,在每轮比较开始处for j=I+1 to Nif(S(j)OP S(iMax)then iMax=jnext j 注意比较对象的转变t=S(i):S(i)=S(iMax):S(iMax)=t 注意互换的时间Next IVB例题点此进入,:冒泡法排序如果按升序排序,则方法为:将相邻两个数比较,把小数对调到前边,如此进行一轮後,就会把最大的数互换到最后,再进行一次,则会把第二大数排在倒数第二的位置上,进行次後,整个数列即可排好在这种排序过程中,小数如气泡一样逐层上伏,而大数逐个下沉,因此,被形象的喻为“冒泡”特征:当数据的大小顺序与要求不符时(逆序)
5、,才进行互换操作,第 一 轮 比 较:,9 4 7 5 2,4 9 7 5 2,4 7 9 5 2,4 7 5 9 2,4 7 5 2 9,第一轮结束,最大值 9沉到最底,第 二 轮 比 较:,4 7 5 2 9,4 7 5 2 9,4 5 7 2 9,4 5 2 7 9,第二轮结束,次大值7沉到倒数第二,冒泡法的公式表示:,For i=1 to N-1for j=1 to N-i比较次数逐次减少if(S(j)OP S(j+1)thent=S(j):S(j)=S(j+1):S(j)=t立即互换end ifnext jnext i,7.2 常用的查找算法,7.2.1 顺序查找 顺序查找表现是把待
6、查找的数与数组中的数从头到尾逐一比较,用一变量 P 来表示当前比较的位置,初始为1,当待查找的数与数组中 P 位置的元素相等时即可结束,否则 P=P+1 继续比较,当 P 大于 数组的最大长度,也应该结束注意退出的两种情况,分别为找到和P大于数组的最大长度,用Do While进行顺序查找(为待查找的数):,P=1初始化比较位置Do while xS(p)And pNp=p+1Loop退出的两种情况If x=S(p)then 找到,处理else没找到,处理end ifVB例题点此进入,用For Next进行顺序查找(为待查找的数):,For p=1 To N If a(p)=x Then Exi
7、t For End If Next退出的两种情况 If p N Then 没找到,处理 Else 找到,处理 End IfVB例题点此进入,7.2.2 折半查找折半查找法是对有序数列进行查找的一种高效查找办法,其基本思想是逐步缩小查找范围,因为是有序数列,所以采取半分作为分割范围可使比较次数最少.比较过程:(设数列已做降序排序处理)设置三个指针,分别指向数组序列 S 的Top,Bottom和Middle,其中Middle=(Top+Bottom)/2,进行下列判断,1 3 4 6 8 10 12 15 18 20 25,X=15,1)若待查找的数 X 等于S(Middle),则已经找到,位置就
8、是Middle.否则进行下面的判断.2)如果 X 小于 S(Middle),因为是有序数列,则 X 必定落在Top 和 Middle-1的范围之内,下一步查找只需在此范围之内进行即可.即Top位置不动,Bottom变为 Middle-1.重复 1)即可.3)如果 X 不小于 S(Middle),则 X 必定落在 Middle+1 和 Bottom之间,下一步查找范围应该是 Top=Middle+1 和 Bottom,设定完Top後即可转到 1)继续判断.注意:在此循环过程中,Top,Middle,Bottom都是表示位置的整数,如果循环到 Top=Middle 或者 Middle=Bottom
9、,则表明此数列中没有我们要找的数.应该退出循环.,result=False初始化逻辑变量Top=1:bottom=N:middle=(top+bottom)/2 初始化指针Do While(result=False and middlebottom)构造循环middle=(bottom+Top)/2 初始化指针If X=S(middle)Then判断result=True找到Else If X S(middle)Then根据大小 Top=middle+1确定下一步比较范围 Else bottom=middle-1 End IfEnd IfLoop下一步通过分析result的真值来区分是否找到,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 常用算法 常用 算法 PPT 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5503667.html