万万没想到(java二分法解方程)二分法排序java代码,Java二分法原理与代码实现,java二分排序法,
二分法:
1、二分法查找算法是建立在排序的基础之上的,即没有排序的
数据是无法查找的;
2、二分法查找的效率高于"一个挨着一个"的这种查找方式;
3、二分法查找原理?我们用一个例子来说明;
int[] arr ={0,5,9,10,20,60,70,80,90,100};
目标:找出100的下标:
数组元素为:0(下标为0) 5 9 10 20 60 70 80 90 100(下标为9);
3.1、找出中间元素:(0+9) / 2 --> 4(中间元素);
3.2、用找到的中间元素跟目标元素比较:20 < 100, 此时说
所要查找的元素在中间元素的右边,则开始下标就变
成了:4 + 1;
3.3、继续循环,找出中间值:(5+9) / 2 --> 7(中间元素);
3.4、用找到的中间元素跟目标元素比较:80 < 100, 此时说
所要查找的元素在中间元素的右边,则开始下标就变
成了:7 + 1;
3.5、继续循环,找出中间值:(8+9) / 2 --> 8(中间元素);
3.6、用找到的中间元素跟目标元素比较:90 < 100, 此时说
所要查找的元素在中间元素的右边,则开始下标就变
成了:8 + 1;
3.7、继续循环,找出中间值:(9+9) / 2 --> 9(中间元素);
3.8、用找到的中间元素跟目标元素比较:100 = 100, 此时说
明目标元素已被找到;
4、代码的实现:
总结:在需要查找元素时,如果是一对数字,首选方法为二分法,因为二分法的效率高,而且也比较便捷,用起来更方便,但是,最重要的一点还是"要对目标数组进行排序",有关于数组的排序,可翻我的上一篇博客。在Java中,sun公司也帮我们写好了二分法的代码,我们可以通过"Arrays.binarySearch(目标数组,目标元素);",我们可以通过"Arrays.sort(目标数组);"进行对数组的排序,然后在通过"Arrays.binarySearch(目标数组,目标元素);"进行查找,又方便效率也高。
本文系作者 @河马 原创发布在河马博客站点。未经许可,禁止转载。
暂无评论数据