二分查找的一些注意事项

2024-08-02

二分查找的一些注意事项(精选3篇)

篇1:二分查找的一些注意事项

二分查找作为O(log(n))时间复杂度的查找算法得到了广泛的使用,

1.在已排序的数组中查找特定的元素。或者是满足条件的第一个元素

2.数学常用的求解方程的解,也是数学家所指的对半查找。

3.程序调试中用来定位错误语句

4….

篇2:二分查找的一些注意事项

链接地址leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/

题目:

Follow up for “Find Minimum in Rotated Sorted Array”:

What if duplicates are allowed?

Would this affect the run-time complexity? How and why?

Suppose a sorted array is rotated at some pivot unknown to you beforehand.

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

Find the minimum element.

The array may contain duplicates.

class Solution {public: int findMin(vector& nums) { if(nums.empty())return 0; int left=0,right=nums.size()-1,mid; while(nums[left]>=nums[right]) {mid=(left+right)>>1;if(nums[mid]>nums[right]) left=mid+1;else if(nums[left]>nums[mid]) right=mid;else if(nums[left]==nums[mid]&&nums[right]==nums[mid]){ int tmp=nums[left]; for(int i=left;inums[i])tmp=nums[i]; return tmp;} } return nums[left]; }};

本人在写上述代码时候就是放了第二个错误。

left=mid+1; right=mid;

篇3:二分法查找微课教案

一、 概述

本课是高中信息技术选修教材《算法与程序设计》第三章“算法的程序实现”中的第三节“在数组中查找数据”的第3课时――二分法查找。

这节课目标是学习二分法查找的概念,理解二分法查找算法的思想,能写出二分查找算法步骤。

这节课内容既是跟前一节内容“顺序查找方法”对比,训练学生思维的广度,增强思维的灵活度,同时也对后面学习“递归算法”一课也能起到很好的衔接作用。

本课中的“理解二分算法的思想”既是重点又是难点,本微课设计即针对这个环节进行设计,利用一个简单节目(学生做)、一张图(学生想)、完成帮助学生理解二分算法的思想。

二、 教学目标分析

1、 知识与技能

掌握二分算法的概念,理解算法的思想,为用代码

实现其操作步骤打下基础。

2、 过程与方法

通过参与小节目的形式探究二分法思想和了解其概

念,通过让学生观察解答树图进一步理解二分法思想。

3、 情感态度与价值观

通过小节目使学生享受集体活动的快乐,体会集体

智慧的力量,培养学生的思维广度;通过图形描述和提炼算法思想培养他们的思维深度;使学生对程序设计在生活中的应用有进一步的认识,促进他们学习程序设计和算法的兴趣,提高他们的计算思维能力和创造力。

三、 学习者特征分析

学生通过学习,已经掌握了在VB环境编写简单程序的

步骤和方法,掌握了基本的.语句和部分简单算法。但对于代码的编写仍有一定的困难和为畏难情绪。这节内容的代码相比之前,复杂度有所提升,所以理解算法思想是最为重要的。从生活中的趣例入手,让他们有自然的想法,逐步有用程序实现的需求,学习过程便顺理成章了。

四、 教学重点

掌握二分法概念和思想

五、 教学难点

理解二分法思想

六、 教学过程

1、 小节目

猜价格

有一价格为W(1≤W≤20)的商品,同学甲给定价格区间,让同学乙猜商品的价格,如果乙猜错,甲给出“高于W”或“低于W”的提示。看需要几次能猜对。

分小组商量对策,然后派代表公开表演。

2、总结三种方法:

1) 顺序法(使用者比较少,复习旧知)

2) 随机法(有一部分支持,不稳定)

3) 二分法(有少数同学使用,稳定,平均效率高)

3、剖析二分法(解答树图)

七、 教学评价

1、在演示节目阶段,学生参与,教师点评为主

2、在分析阶段,学生描述,学生点评为主

八、教学反思

学生从参与节目,对比和总结不同的解决策略,初步理解二分法的高效,到通过解答树图进一步理解二分法的思想和原理,思维在广度和深度均得到锻炼,深入浅出地解决了本课的重难点。从图中再次模拟操作步骤,为下一环节代码的实现做好铺垫。

在后两个环节中,根据学生的反应,动态扩展其他策略的分析思路,为突出二分法的优势和适用条件打下基础。

九、 后续补充说明

上一篇:以感恩为题的书信下一篇:平等幼儿园:瑞典学前班刻意“模糊”性别