列三个算法是关于 “ 大规模数据集合中查找有无某些元素 ” 问题的算法:针对一个 “ 学生 ” 数据表,如下示意,找出 “ 成绩 ” 为某一分数的所有学生。 【算法 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 针对上述三个算法,回答问题:关于三个算法的复杂性,下列说法正确的是 _____ 。