使用java完成二分算法

来源:互联网 发布:js原型 编辑:程序博客网 时间:2024/06/11 07:44

使用java完成二分算法。自己写的可能有错

package com.test;public class Test2 {    // 使用二分算法计算某个数在哪个位置,即每次取中间值进行比较    // 如果这个数小了将最小值设为中间数,如果这个数大了将最大值设为中间数    // 重复以上步骤、但由于java每次进行除法后都是去掉小数点以后的数字。所以应该考虑最后一个值的情况    public static void main(String[] args) {        int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };        int a = 4;        int min = 0;        int max = arr.length - 1;        int count = 0;        while (min < max) {            count++;            int mid = arr[(min + max) / 2];// 5.5 = 5            if (a > mid) {                min = (min + max) / 2;                if (mid == arr[arr.length - 2]) {                    System.out.println(count + "   a > mid ");                    System.out.println(arr[arr.length - 1]);                    break;                }            }            if (a < mid) {                max = (min + max) / 2;            }            if (a == mid) {                System.out.println(count);                System.out.println(mid);                break;            }        }    }}
原创粉丝点击