(
课件网) 哪个算法更“好”? 顺序查找 二分查找 算法的评价方法 如何比较这两个查找算法的运行效率 时间长短 ↓ 语句的执行次数? ↓ 用循环语句执行次数估算效率 循环次数 范围 范围初值cz 范围终值zz 猜测编号cai (取中间数) 编号比较 (cai vs da) 输出结果 (猜低了/猜高了/猜对啦) 1 1~20 1 20 10 10<17 猜低了 2 11~20 11 20 15 15<17 猜低了 3 16~20 16 20 18 18>17 猜高了 4 16~17 16 17 16 16<17 猜低了 5 17~17 17 17 17 17=17 猜对啦 可能影响循环次数的因素有哪些? 如果答案编号da=17: 范围? 目标值? 二人小组在1-100范围内继续数目标值50、100时两种算法分别执行了多少次。 实验一:相同查找范围,不同目标值的探究。 慢 容易错 1 3→ 6→ 12→ 25→ 50→ 6 思考:当查找范围相同时,影响循环次数的因素是什么? 有没有更快记录循环次数的方法? 利用变量记录循环次数! 修改程序,变量计数 变量:ci ci赋初始值0 每进入循环ci加1 查找结束输出结果 ci初始化 ci增加1 输出ci 修改程序,变量计数 ci初始化 ci增加1 输出ci 放在哪? ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ 修改程序,变量计数 增加计次变量; 二人小组合作对照流程图,将下方语句写入程序对应“行”中。 程序记录次数的探究 顺序查找 二分查找 实验二:相同目标值,不同查找范围的探究 修改查找范围、目标值,运行程序验证 思考:当查找范围相同时,影响循环次数的因素是什么? 999 999 999 999 9 14 17 20 查找范围、目标值 更多的实验数据 哪个算法更“好”? 一直是二分查找“好”吗? 好的时候好多少? 二分查找好 大概率 效率好且很显著 在相同查找范围内,查找不同目标值时,大概率是二分查找效率高且显著。 “好”算法的标准 正确性、有效性 效率: 你的电脑“卡”过吗? 占用内存空间 时间 给程序计时! 猜猜这段程序有什么用? 下课~