4.13一维数组的应用 例4.1算法分析 ①从第一位学生到最后一位学生依次与输入成绩进行比较 for(i=1;i<=n;i+)∥/计数循环、从前到后进行循环 if(sore[i]=x)//如果当前成绩等传查找成绩 break /则退出循环 if(i<= n cout<<"查找成功,待查找成绩是第“ <<i<"位学生的成绩"<endl; e⊥se cout<<"未查找到该成绩!"<end1;
4.1.3 一维数组的应用 例4.1 算法分析 ① 从第一位学生到最后一位学生依次与输入成绩进行比较 for(i = 1; i <= n; i++)// 计数循环,从前到后进行循环 { if(score[i] == x) // 如果当前成绩等于待查找成绩 break; // 则退出循环 } if(i <= n) { cout<<"查找成功,待查找成绩是第“ <<i<<" 位学生的成绩"<<endl; } else { cout<<"未查找到该成绩!"<<endl; }
4.13一维数组的应用 例4.1算法分析 ②从最后一位学生到第一位学生依次与输入成绩进行比较 for(i=n;i>=1;i-)/计数循环、从前到后进行循环 if(sore[i]=x)/如果当前成绩等于待查找成绩 break //则退出循环 if(i>=1) cout<<"查找成功,待查找成绩是第“ <<i<"位学生的成绩"<endl; e⊥se cout<<"未查找到该成绩!"<end1;
4.1.3 一维数组的应用 例4.1 算法分析 ② 从最后一位学生到第一位学生依次与输入成绩进行比较 for(i = n; i >= 1; i--) // 计数循环,从前到后进行循环 { if(score[i] == x) // 如果当前成绩等于待查找成绩 break; // 则退出循环 } if(i >= 1) { cout<<"查找成功,待查找成绩是第 “ <<i<<" 位学生的成绩"<<endl; } else { cout<<"未查找到该成绩!"<<endl; }
4.13一维数组的应用 例4.1算法分析 ③从最后一位学生到第一位学生依次与输入成绩进行比较, 以下标0处的数组元素作为监视哨 考虑到本例的 score数组下标0处并未存情任何数据元素, 我们可以以它作为监视哨,从而提高程序的效率 输入待查找成绩x 设置监视哨 SCorE[0]=x for(i=n-1, score[i]l =x i--) >0 是 查找成功,输出i输出查找不成功
4.1.3 一维数组的应用 例4.1 算法分析 ③ 从最后一位学生到第一位学生依次与输入成绩进行比较, 以下标0处的数组元素作为监视哨 • 考虑到本例的score数组下标0处并未存储任何数据元素, 我们可以以它作为监视哨,从而提高程序的效率
4.13一维数组的应用 例4.1算法分析 ③从最后一位学生到第一位学生依次与输入成绩进行比较, 以下标0处的数组元素作为监视哨 score [o=x;//在下标处设管啦视哨 for(i= n: scorei]! =x; i-) /计数循环,从后到前循环比较当前元素,循坏体为空语句 if(i>=1) cout<<"查找成功,待查找成绩是第“ <<i<”位学生的成绩"<end1; else cout<<"未查找到该成绩!"<end1;
4.1.3 一维数组的应用 例4.1 算法分析 ③ 从最后一位学生到第一位学生依次与输入成绩进行比较, 以下标0处的数组元素作为监视哨 score[0] = x; // 在下标处设置监视哨 for(i = n; score[i] != x; i--); // 计数循环,从后到前循环比较当前元素,循环体为空语句 if(i >= 1) { cout<<"查找成功,待查找成绩是第“ <<i<<" 位学生的成绩"<<endl; } else { cout<<"未查找到该成绩!"<<endl; }
4.13一维数组的应用 例4.2有10位学生的成绩存放在数组 score中,从键盘输入1个 数,使用折半查找法查找这个成绩是否在数组中,如果在, 输出其下标,如果不在,输出0。数组的下标i表示第位学 生的成绩,数组的下标处不存储成绩。 算法分析: 先找到中间元素,再根据中间元素与待查找元素的比较结果缩 小一半的待查找区间,从而提高查找的效率。 如果中间元素与待查找元素相等,则查找成功 如果中间元素较大,则待查找元素在前半区间,查找前半区间 如果中间元素较小,继续查找后半区间 使用两个整型变量分别表示区间的上界和下界。 如果区间的上界小于下界,说明区间为空,查找失败。 比较后,要查找前半区间,只需修改区间的上界;要查找后半 区间,只需修改区间的下界
4.1.3 一维数组的应用 例4.2 有10位学生的成绩存放在数组score中,从键盘输入1个 数,使用折半查找法查找这个成绩是否在数组中,如果在, 输出其下标,如果不在,输出0。数组的下标i表示第i位学 生的成绩,数组的下标0处不存储成绩。 算法分析: 先找到中间元素,再根据中间元素与待查找元素的比较结果缩 小一半的待查找区间,从而提高查找的效率。 如果中间元素与待查找元素相等,则查找成功 如果中间元素较大,则待查找元素在前半区间,查找前半区间 如果中间元素较小,继续查找后半区间。 使用两个整型变量分别表示区间的上界和下界。 如果区间的上界小于下界,说明区间为空,查找失败。 比较后,要查找前半区间,只需修改区间的上界;要查找后半 区间,只需修改区间的下界