首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

Java|实现二分法查找

利用二分法查找就可以快速实现。接下来给大家讲解二分法查找的思想,以及如何用java代码实现。...二分法查找的思想 二分法查找又称为折半查找二分法查找的基本思想是把数组中的元素从小到大有序地存放进数组中,首先将给定值与数组中间位置的值作比较,如果相等,则匹配成功。...否则,若比较值小了,则在数组的前半部分继续二分法查找;若比较值大了,则在数组后半部分进行二分法查找。如此循环往复,直到比较值与中间值匹配,完成查找。 流程图: ?...,则返回404 return 404; } } 效果展示 打印了数组,并输出了查找值的索引。...温馨提示 在这里,有一个非常值得注意的点,二分法查找的前提是排好序的数组。所以我在上面代码中使用了sort()方法,对初始数组进行了排序。

86620

简单二分法查找(binary search)

mid+1, high, value); } else { return bsearchInternally(a, low, mid-1, value); } } 上面这种思想也就是二分法思想...,但是还有就是二分法的这种思想的使用场景的局限性还是比较多的 二分法依赖的是顺序表结构(数组) 那二分查找能否依赖其他数据结构呢?...所以,如果数据使用链表存储,二分查找的时间复杂就会变得很高 二分法针对的是有序数组 二分查找对这一点的要求比较苛刻,数据必须是有序的。如果数据没有序,我们需要先排序。...那针对动态数据集合 数据量太小也是不适合二分法的 如果要处理的数据量很小,完全没有必要用二分查找,顺序遍历就足够了。...数据量太大也不适合使用二分法, 准确来说数据量太大不适合使用数组存储数据,比如说1GB 的数据,使用数组存储的话,这1GB数据必须是连续的存储,比如你现在剩余内存为1GB 但是这个1GB数据 不一定能存储这

54010

【算法基础】线性、二分法查找

线性查找(顺序查找) 声明两个变量:查找的元素、保存索引的变量 用for循环依次遍历 注意: 这里只查找一个元素,索引可以用于判断是否找到该元素。...这里只查找一个。...二分法查找 二分法查找的前提:数组是有序的 思路 将数组从中间分割为两部分(二分法), 用要查找的元素和数组中间的元素进行比较 若查找元素大于数组中间元素,则在数组右边查找;反之则在数组左边查找 再将查找的部分按前面的思路进行二分法查找...实现步骤 声明一个引用保存要查找的值value 声明头部下标headIndex = 0、尾部下标endIndex = arr.length-1 声明一个阈值flag = flae,用于判断元素是否存在使用...线性查找二分法查找对比 线性查找: 优点:通用性更强 缺点:效率低,时间复杂度为:O(N) 二分法查找: 优点:效率高,时间复杂度为:O(logN) 缺点:数组必须有序

25720
领券