Java - 二分法查找(尚学堂第七章数组)

import java.util.Arrays;

public class TestBinarySearch {
    public static void main(String[] args) {
        int[] arr = { 30,20,50,10,80,9,7,12,100,40,8};
        Arrays.sort(arr);//排序

        System.out.println(Arrays.toString(arr));
        System.out.println(myBinarySearch(arr,10));

    }

    public static int myBinarySearch(int[] arr, int value) {
        int low = 0;
        int high =arr.length-1;

        while(low <= high) {
            int mid = (low+high)/2;

            if(value == arr[mid]) {
                return mid;
            }
            if(value > arr[mid]) {
                low = mid+1;
            }
            if(value < arr[mid]) {
                high = mid-1;
            }
        }

        return -1;
    }

}

原文地址:https://www.cnblogs.com/kl-1998/p/10721392.html

时间: 2024-10-11 03:26:11

Java - 二分法查找(尚学堂第七章数组)的相关文章

Java - 冒泡排序的基础算法(尚学堂第七章数组)

/** * 冒泡排序的基础算法 */ import java.util.Arrays; public class TestBubbleSort1 { public static void main(String[] args) { int[] values = { 3, 1, 6, 2, 9, 0, 7, 4, 5, 8 }; int temp = 0; /* 2.调用内循环length-1次,数字逐渐实现从左到右依次向后排, * 每执行n次内循环就出现n个排好的数值,故内循环可少执行i次, 所

Java - 冒泡排序的优化算法(尚学堂第七章数组)

import java.util.Arrays; public class TestBubbleSort2 { public static void main(String[] args) { int[] values = { 3, 1, 6, 2, 9, 0, 7, 4, 5, 8 }; int temp = 0; for(int i=0;i<values.length-1;i++) { boolean flag = true; for(int j=0;j<values.length-1-i

java-第七章-数组-购物金额结算

import java.util.Scanner; public class A02 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input= new Scanner (System.in); double number [] = new double [5]; double sum=0; for (int i = 0; i < number.length; i++) 

java-第七章-数组-字符逆序输出

import java.util.Arrays; public class A03 { public static void main(String[] args) { // TODO Auto-generated method stub char Letter [] = new char []{'a','c','u','b','e','p','f','z'}; System.out.print("原字符 列表:"); for (int i = 0; i < Letter.len

java-第七章-数组-求出一些数的最小值

import java.util.Scanner; public class A04 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); double[] Price = new double[4]; double min = 0; System.out.println("请输入4家店的价格"); for

java-第七章-数组-更新会员积分

import java.util.Scanner; public class A05 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.println("请输入5位会员的积分:"); int integral[] = new int[5]; for (int i = 0; i &l

java-第七章-数组-依次输入5句话,然后将它逆序输出.

import java.util.Scanner; public class A01 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner (System.in); System.out.println("请输入5句话:"); String[] names = new String [5]; for (int i = 0; i &

程序设计基础 第七章 数组与字符串

第七章 数组与字符串 A总结: 1.数组是同类型的集合,同一个数组的数组元素具有相同的数据类型,引用数组就是引用数组的各元素,通过下标的变化可以引用任意一个数组元素,注意不要进行下标越界的引用,那样会带来副作用. 2.数组类型在数据处理和数值计算中有十分重要的作用,数组与循环的结合可以解决很多的问题. 3.数组可以根据下标的多少分类:一维数组(一个下标)……… 4.C语言使用字符数组来存放字符串,该字符数组中包含一个’\0’字符,代表字符串的结尾. B解析: 7.1:数组的基本概念 :按一定的顺

java-第七章-数组-循环输出

public class A01 { public static void main(String[] args) { // TODO Auto-generated method stub String name [] = new String []{"Nike背包","Adidas运动衫","李宁运动鞋","Kappa外套","361°腰包"}; System.out.println("本次活动