下列三个算法是关于“大规模数据集合中查找有无某些元素”问题的算法:针对一个“学生”数据表,如下示意,找出“成绩”为某一分数的所有学生。 【算法A1】 Start of algorithm A1 Step 1. 从数据表的第1条记录开始,直到其最后一条记录为止,读取每一条记录,做Step 2。 Step 2. 对每一条记录,判断成绩是否等于给定的分数:如果是,则输出;如果不是,则不输出。 End of algorithm A1 【算法A2】 Start of algorithm A2 Step 1. 从数据表的第1条记录开始,直到其最后一条记录为止,读取每一条记录,做Step 2和Step 3。 Step 2. 对每一条记录,判断成绩是否等于给定的分数:如果等于,则输出;如果不等于,则不输出。 Step 3. 判断该条记录的成绩是否小于给定的分数:如果不是,则继续;否则,退出循环,算法结束。 End of algorithm A2 【算法A3】 Start of algorithm A3 Step 1. 假设数据表的最大记录数是n,待查询区间的起始记录位置Start为1,终止记录位置Finish为n; Step 2. 计算中间记录位置I = (Start+Finish)/2,读取第I条记录。 Step 3. 判断第I条记录的成绩与给定查找分数: (3.1)如果是小于关系,则调整Finish = I-1;如果Start >Finish则结束,否则继续做Step 2; (3.2)如果是大于关系,则调整Start = I+1;如果Start>Finish则结束,否则继续做Step 2; (3.3)如果是等于关系,则输出,继续读取I周围所有的成绩与给定查找条件相等的记录并输出,直到所有相等记录查询输出完毕则算法结束。 End of algorithm A3 关于算法A3,下列说法正确的是_____。 /js/editor20150812/themes/default/images/spacer.gif
举一反三
- 中国大学MOOC:下列三个算法是关于“大规模数据集合中查找有无某些元素”问题的算法:针对一个“学生”数据表,如下示意,找出“成绩”为某一分数的所有学生。【图片】【算法A1】StartofalgorithmA1Step1.从数据表的第1条记录开始,直到其最后一条记录为止,读取每一条记录,做Step2。Step2.对每一条记录,判断成绩是否等于给定的分数:如果是,则输出;如果不是,则不输出。EndofalgorithmA1【算法A2】StartofalgorithmA2Step1.从数据表的第1条记录开始,直到其最后一条记录为止,读取每一条记录,做Step2和Step3。Step2.对每一条记录,判断成绩是否等于给定的分数:如果等于,则输出;如果不等于,则不输出。Step3.判断该条记录的成绩是否小于给定的分数:如果不是,则继续;否则,退出循环,算法结束。EndofalgorithmA2【算法A3】StartofalgorithmA3Step1.假设数据表的最大记录数是n,待查询区间的起始记录位置Start为1,终止记录位置Finish为n;Step2.计算中间记录位置I=(Start+Finish)/2,读取第I条记录。Step3.判断第I条记录的成绩与给定查找分数:(3.1)如果是小于关系,则调整Finish=I-1;如果Start>Finish则结束,否则继续做Step2;(3.2)如果是大于关系,则调整Start=I+1;如果Start>Finish则结束,否则继续做Step2;(3.3)如果是等于关系,则输出,继续读取I周围所有的成绩与给定查找条件相等的记录并输出,直到所有相等记录查询输出完毕则算法结束。EndofalgorithmA3关于算法A1,A2,A3的快慢问题,下列说法正确的是_____。
- 中国大学MOOC: 查找算法B:第一步:从数据表的第1条记录开始,直到其最后一条记录为止,读取每一条记录,做第二步和第三步。第二步:对每一条记录,判断成绩是否等于给定的分数:如果等于,则输出;如果不等于,则不输出。第三步:判断该条记录的成绩是否小于给定的分数:如果不是,则继续;否则,退出循环,算法结束。对查找算法B的描述正确的是( )
- 查找算法B:第一步:从数据表的第1条记录开始,直到其最后一条记录为止,读取每一条记录,做第二步和第三步。第二步:对每一条记录,判断成绩是否等于给定的分数:如果等于,则输出;如果不等于,则不输出。第三步:判断该条记录的成绩是否小于给定的分数:如果不是,则继续;否则,退出循环,算法结束。对查找算法B的描述正确的是( ) A: 记录不需要按排序 B: 要求记录按成绩的升序排列 C: 要求记录按成绩的降序排列 D: 只要按成绩大小排序就行,升序或降序都可以
- 阅读下列算法,回答:Start of the algorithm(算法开始)N=10。i=2。sum=2。如果 i<=N,则执行第(4)步,否则转到第(8)步执行。如果i / 2 ==0 则转到第(6)步执行。sum = sum + i。i = i+1。返回到第(3)步继续执行。输出sum的结果。End of the algorithm(算法结束)算法执行的结果为_________。 A: 24。 B: 26。 C: 55。 D: 45。 E: 46。
- 下列三个算法是关于“大规模数据集合中查找有无某些元素”问题的算法:针对一个“学生”数据表,如下示意,找出“成绩”为某一分数的所有学生。关于算法A3和算法A1,下列说法正确的是_____。 A: 如果数据表中记录数越多,则算法A3相比算法A1的优势越明显,即查找时间越短 B: 如果数据表中记录数越多,则算法A1相比算法A3的优势越明显;即查找时间越短 C: 算法A3和算法A1的执行时间差异不会随数据表中记录数多少而变化 D: 上述都不正确