首页 > 其他分享 >折半查找

折半查找

时间:2023-03-03 09:01:48浏览次数:31  
标签:折半 int mid BinarySearch 查找 low

1、折半查找又称为二分查找,仅适用于有序的顺序表。

class BinarySearch{
    public int search(int[] a,int k){
        int low = 0;
        int high = a.length-1;
        int mid;
        while (low <= high){
            mid = (low+high)/2;
            if (a[mid] == k){
                return mid;
            }else if (a[mid] > k){
                high = mid -1;
            }else {
                low = mid +1;
            }
        }
        return  -1;
    }
}

2、测试

        int[] a={7,10,13,16,33};
        BinarySearch binarySearch = new BinarySearch();
        int i = binarySearch.search(a, 33);
        System.out.println(i);

 

标签:折半,int,mid,BinarySearch,查找,low
From: https://www.cnblogs.com/jixian/p/17174330.html

相关文章

  • 【算法设计-查找】查找的相关题目
    目录1.打印极值点下标2.找最小数3.查找4.找位置1.打印极值点下标【描述】在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数......
  • EBS 查找数据源(FORM篇)
    在OracleE-BusinessSuite环境下进行二次开发,要求技术顾问对EBS系统的结构和实现有一定的了解,同时熟悉系统的关键流程,进而掌握后台的表结构设计,查找数据源需要达到的两个......
  • windows端口占用netstat查找无占用
    1、问题在软件,idea项目启动中,端口显示被占用,但是使用:netstat-aon|findstr1099显示出端口并没有被占用:网络上查询很多都显示是Hyper-V会保留端口。而你如果在Wind......
  • 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。
    LeetCode704-二分查找题目描述:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返......
  • 基本功练习_2_27_之二分法查找
    #include<stdio.h>intsearch(int*a,intkey,intlow,inthigh){intmid;if(low>high)return-1;mid=(low+high)/2;if(a[mid]==key)returnmid;elseif(a[m......
  • 算法刷题-查找组成一个偶数最接近的两个素数-JAVA
    0x00引言为获取一个良好的算法思维,以及不再成为一个脚本小子,争取每天一道算法题,培养自己的逻辑思维,温顾各类型语言语法知识。题解只写自己理解的解法,其他解法不再增加。......
  • 基本算法之二分查找法折半查找(Java)
    前提条件:数组中的数据必须是有序的!核心思想:每次排除一半的数据,查询数据的性能明显提高很多!      publicclassTask{publicstaticvoidmain(Stri......
  • #yyds干货盘点# LeetCode面试题:在排序数组中查找元素的第一个和最后一个位置
    1.简述:给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回 [-1,-1]......
  • 寻找旋转排序数组中的最小值---二分查找
    寻找二分排序数组中的最小值已知一个长度为n的数组,预先按照升序排列,经由1到n次旋转后,得到输入数组。例如,原数组nums=[0,1,2,4,5,6,7]在变化后可能得到:若旋转......
  • 二分查找
    数组:【1,2,2,2,3,4,5,6】二分查找市返回2的位置,左侧边界和右侧边界的写法:intbinary_search(int[]nums,inttarget){intleft=0,right=nums.length-1;......