java binary

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java binary是什么,让我们一起了解一下?

binary是以2为基数代表系统的二进位制,这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示,现代的计算机和依赖计算机的设备里都使用二进制,每个数字称为一个比特(Bit,Binary digit的缩写)。

实际应用中,比如binary search(二分查找)和bubblesort(冒泡排序)一样,binary search是在一个有序排列的数组中查找指定数据的下标并输出,普通的查找方法通过遍历数组,找出对应数据。

java binary

但是针对数组长度较长或者非常长的情况下,这个从头遍历查找的方法效率就显得十分低下,这时候二分查找的优势就显现出来了。

二分查找,意味着从中间开始进行比较,因为数组是有序排列的(一般从小到大);所以就可以从数组的中间比较。

下面通过代码实现:

class BinarySearch{public static void main(String[] args){//创建一个有序数组int[] arr1={1,2,3,4,5,6,7};//调用binarySearch方法,传入参数  arr1,6binarySearch(arr1,6);        }        static void binarySearch(int[] arr,int a){        //定义数组的起点下标和终点下标             int min=0,max=arr.length-1;             /**              *定义数组的中间数据的下标,接收的类型为int               *所以当数据长度为偶数时不影响实际循环              */             int centre=(min+max)/2;             //使用while循环,不知道具体的循环次数所以for循环不适用             while(min<=max){             //第一种,在中间的数字就是需要查找的数,直接跳出循环if(arr[centre]==a){        System.out.println(centre);        break;    //当中间的数大于查找数,将中间数据的下标减1 赋给 最大下标    }if(arr[centre]>a){        max=centre-1;    //当中间的数小于查找数,将中间数据的下标加1 赋给 最小下标    }else{         min=centre+1;    }    //完成新的赋值之后,再将完成新的赋值的下标的平均值赋值给中间下标                centre=(min+max)/2;             }       }}