哈哈,去吧,特别好看
- 2019-11-17
序言:这篇文章主要讲了顺序查找和二分查找
(1)顺序查找
核心:很简单,遍历要查找的数组,将要查找的值与数组的元素一一比对,相同的则返回下标;
小例子:
这是第一种方式,用foreach,下面再用一种for循环
输出:
对了数组为:$arr = [1,2,3,4,5,6,6];这种查找的有一个好处就是数组可以是有序,也可以是无序;下面要讲的二分查找只能是有序数组才可以
(2).二分查找
核心:确定数组的中间数,然后将这个中间数同要查找的数比较,如果中间数大于要查找的数,则在中间数左边的区域查找,反之则在中间数的右边查找;假如查找的数比中间数小,然后在左边的区域再确定一个中间数,然后又用这个新的中间数和要查找的数做比较,如果小还是重复上述步骤,就这样一直反复,直到那个中间数就是要找的数,然后输出;这里其实运用了递归的思想;
小例子:
上面这个就是二分查找的实现;
传入的参数是起始位置,结束位置,数组,要查找的值;
简单地解释一下这个小例子:
首先要查找8;所以先确定中间数$middle=3;因为8>4;所以在4右边区域找;进行递归调用函数,此时$middle=5,此时$arr[$middle]=6,因为8>6,继续递归,此时$left=6,$right=5,不满足if条件,退出查找,说明数据不存在;
就这样完成了对数据8的查找;
转载请注明出处,谢谢!
评论一下