一个简单二分查找的范例

简介: 一个简单二分查找的范例

一个二分的简单实现

public int bsearch(int[] a, int n, int value) {
   
  int low = 0;
  int high = n - 1;

  while (low <= high) {
   
    int mid = low+((high-low)>>1;
    if (a[mid] == value) {
   
      return mid;
    } else if (a[mid] < value) {
   
      low = mid + 1;
    } else {
   
      high = mid - 1;
    }
  }

  return -1;
}
目录
相关文章
|
6月前
|
Java C语言
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
63 0
|
3月前
|
算法 索引 Python
【Leetcode刷题Python】34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
解决LeetCode "在排序数组中查找元素的第一个和最后一个位置" 问题的方法。第一种方法是使用两次二分查找,首先找到目标值的最左边界,然后找到最右边界。第二种方法是利用Python的list.index()方法,先正序找到起始位置,再逆序找到结束位置,并给出了两种方法的Python实现代码。
60 0
|
算法 C语言
C语言:使用 普通方法 和 二分查找算法(折半查找算法) 在一个有序数组中查找具体的某个数字n-2
第一步: (1). 设置初始数组:int arr[]。 (2). 生成相关变量: int n = 0; -- 存放从键盘输入的要查找的值; int i = 0; -- 循环变量;
|
11月前
|
存储 C++
数据的存储练习题 -- (解题思路+代码)
数据的存储练习题 -- (解题思路+代码)
61 0
|
6月前
剑指Offer LeetCode 面试题53 - I. 在排序数组中查找数字 I
剑指Offer LeetCode 面试题53 - I. 在排序数组中查找数字 I
32 0
|
12月前
|
C语言
【C语言】自定义函数对有序数组的二分查找,以及对二分查找会出现的问题进行补充
【C语言】自定义函数对有序数组的二分查找,以及对二分查找会出现的问题进行补充
40 0
|
算法 C语言
C语言:使用 普通方法 和 二分查找算法(折半查找算法) 在一个有序数组中查找具体的某个数字n-1
思路一:普通方法 (逻辑简单,在无序数组中也可以使用,但效率较低,需要逐个查找) 总体思路:
|
存储
二分法查找解题原理与运用方式
二分法查找解题原理与运用方式
245 0
二分法查找解题原理与运用方式
|
C语言
C语言白话数组数据查找(遍历查找、二分查找)
C语言白话数组数据查找(遍历查找、二分查找)
152 0
C语言白话数组数据查找(遍历查找、二分查找)