- 在编程中,我们需要用数组来存储信息,数组元素与下标与信息的对应关系的确定,对代码的编写效率和执行效率有很大的影响。
- 首先我们看一个简单的例子:
一次考试考语文,数学,英语3科,某组共9人,请编写算法找出3科及格的名单。
算法设计1:
从语文名单抽出及格学号,再在数学名单找该学号,说明该学号数学也及格了,再在英语中找,仍就在,说明都及格了。
*这用了枚举尝试, 显然,这样需要3个for循环来,还需要用3个数组存放语文,数学,英语的及格名单*
算法设计2:
分析3科及格名单,有9名学生,可以开辟大小为9的数组,作为个学生及格科目的计数器,下标代表学生学号,对于及格的成绩只要对该下标的数组加加即可。最后遍历数组,元素为3的即为3科都及格的,对应下标代表及格的学生学号。
很显然,由于两种解法的数组的存储信息不同,算法的操作方法和复杂度不同,算法2简单扼要且效率高。
**(3)一些经典的算法使的下标的应用总结:
1.基数排序&