二分查找

来源:互联网 发布:怎么在淘宝上开个网店 编辑:程序博客网 时间:2024/06/15 03:36

二分查找

相似题型(瞎编)

题目描述

给你一个有序的数列(A,长度为n),再给你一个数(x),输出这个数的位置(不重复出现此数)。

样例输入

7
1 3 4 5 7 8 10
7

样例输出

5

思路

类似这样的题型,我们第一个想到的,是枚举,将1~n扫一遍。这种方法,时间复杂度为O(n),题目数据大时会炸掉(并非指此题,此题也许只是一个大题中的一小部分嵌入这个算法。此题数据大时连输入也超时,别跟我提读入优化,我连这东西能不能吃都不知道
所以我们

内容

二分查找是分治算法的一种(我其实并不熟练)。主要思想是,将一个区间分成两段,把其中一段排除,取更优的一段。将这一段再进行同样的操作,直到此区间变为一点。
二分基本思路
首先指定一个区间(l~r),这区间是要有序(我们这里先假设从小到大)的。你要查找一个数,就从中间分,mid=(l+r)/2。如果A[mid]正好就是你要查找的数,则mid就是它的位置。当A[mid]>x时,说明x的位置在mid左侧,我们就不用找右侧了

0 0
原创粉丝点击