1.期中考试结束了,班长给学生按学分排队,一个小组原有六人,由于某小组组长的疏忽,把一个同学的学分遗漏了,现要把该学分插进去应怎么办?设排好的学分为有序列{1,3,6,
| |||||
| 1.解法一:将5从右向左逐个与有序列中的数据进行比较,确定5在序列中的位置,并将其插入构成一个新的有序列,这个过程可以用下列步骤描述: (1)比较5与9,5<9; (2)比较5与7,5<7; (3)比较5与6,5<6; (4)比较5与3,5>3; (5)将5插到3与6之间得到新的有序列:{1,3,5,6,7,9}. 解法二:要将5插入有序列{1,3,6,7,9},构成一个新的有序列. 首先选择有序列的“中间位置”的数据a3=6,将5与a3比较,显然5<a3,所以5应排在a3的左边.如果还没有确定位置应再取余下数据列的“中间位置”的数据比较查找. 感悟:(1)有序直接插入法中的“比较法”:将数据A与原有序列中的数据从右向左依次进行比较,直到发现某一数据ai,使得ai≤A,把A插入到ai的右边;如果数据A小于原有序列中的所有数据,则将A插入到原有序列的最左边. (2)折半插入法中的“二分法”:用折半插入排序法向有序列中插入新数据时,首先应确定原有序列中数据的个数是偶数2n还是奇数2n+1.若为偶数,则“中间位置”的数据是第n个数;若为奇数,则“中间位置”的数据为第n+1个数,然后用新数据与“中间位置”的数据比较,若新数据大于“中间位置”的数据,则在右半边进行下一步;若新数据小于“中间位置”的数据,则在左半边进行下一步;若新数据等于“中间位置”的数据,则将新数据插入到“中间位置”的数据的右边,依次类推,就可以确定新数据在有序列中的位置,这是二分法的具体应用. 以上是在已经排好的有序列中插入一个新数据,但是生活中肯定会面临无序的数字串排序的问题,这种问题该怎么办? 2.解法一:算法步骤为: (1)只有一个数的序列{7}是有序列; (2)将3插入有序数列{7}中,得到新序列:{3,7}; (3)将6插入有序列{3,7}中,得到新序列:{3,6,7}; (4)将9插入有序列{3,6,7}中,得到新序列:{3,6,7,9}; (5)将1插入有序列{3,6,7,9}中,得到新序列:{1,3,6,7,9}. 所以有序数列为{1,3,6,7,9}. 解法二:算法步骤为: (1)在序列{7,3,6,9,1}中选出最小的数据1放在第1个位置上; (2)在序列{7,3,6,9}中选出最小数3放在第2位; (3)在序列{7,6,9}中选出最小数6放在第3位; (4)在序列{7,9}中选出最小数7放在第4位; (5)将9排在第5位. 感悟:解法一中,第一个数据的选取,没有什么要求,只需按逐一比较排序;解法二中的第1步需选所有数据中的最小数作为基准,依次找最小数排序.体会两者的算法思想,学会处理问题的思维方法. 总之,解决排序插入问题,应先判断所给题目是否有序,若有序用题1所用的两种思维方法排序,若无序可用题2所用的两种思维方法排序,这些都属于简单的排序问题,也是算法思想的具体应用. |
下列的事例中利用大气压强工作的是什么?下列的事例中利用大气压强工作的是什么?A小王将空气吸入肺中B医 2020-03-31 …
甲乙两站地的铁路长,1660千米,9月30日晚上10:30一列火车以每小时90千米的速度从甲站开往 2020-05-14 …
ab两城之间相距1463千米,甲列车从a城开往b城,同时乙列车从b城开往a城.6.16小时后两列车 2020-05-21 …
如果A÷B小于0那么下列说法正确的是Aa小于0Bb大于0Cab小于0Dab大于0如果A÷B小于0那 2020-05-24 …
一大堆数学问题什么是计数单位,数位按什么顺序排列,小数的意义是什么小数的计数单位是什么根据小数的部 2020-07-19 …
坐火车时,火车停在了一个不停的小站,列车员说是车胎扎了,这是什么...坐火车时,火车停在了一个不停的 2020-11-07 …
小鹿,小牛,小马,老虎体重分别是100千克、500千克、300千克、400千克过桥(限重1吨)一起怎 2020-12-09 …
等差数列{an}的前n项和为Sn,已知S9<0,S11>0,那么下列结论正确的是()A.S9+S10 2020-12-23 …
小小的队列中的位置是(12,8),那么小小在队列的第()列.A.12B.8C.无法判断 2020-12-24 …
[1]小明、小王、小李三人排成一列,有{}种不同的排法.[2]任何一个三角形至少都有{}个锐角.[3 2021-01-17 …