`
bcyy
  • 浏览: 1809427 次
文章分类
社区版块
存档分类
最新评论

Java针对数组的普通查找法和二分查找法

 
阅读更多
下面是针对数组的普通查找法和二分查找法的示例代码
  1. packagecom.jadyer.sort;
  2. /**
  3. *数组查找方式
  4. *@detail这里演示了普通查找法和二分查找法
  5. */
  6. publicclassArraySearch{
  7. publicstaticvoidmain(String[]args){
  8. intcommonResult=commonSearch(newint[]{1,5,6,7,4,3,9,11,13,14,16,19,21},9);
  9. intbinaryResult=binarySearch(newint[]{1,3,4,6,7,8,9,12,15,17,18,20,22},8);
  10. System.out.println("二分查找法:"+binaryResult);
  11. System.out.println("普通查找法:"+commonResult);
  12. }
  13. /**
  14. *普通查找法
  15. *@detail该方式最好理解,同时效率也最低
  16. */
  17. publicstaticintcommonSearch(int[]array,intvalue){
  18. for(inti=0;i<array.length;i++){
  19. if(value==array[i]){
  20. returni;//返回该元素在数组中的下标
  21. }
  22. }
  23. return-1;//不存在该元素则返回-1
  24. }
  25. /**
  26. *二分查找法
  27. *@detail要求数组有序,升序或降序均可
  28. */
  29. publicstaticintbinarySearch(int[]array,intvalue){
  30. intlow=0;//最小元素值的下标
  31. inthigh=array.length-1;//最大元素值的下标
  32. intmiddle;//中间元素的下标
  33. while(low<=high){
  34. middle=(low+high)/2;
  35. for(inti=0;i<array.length;i++){
  36. System.out.print(array[i]);
  37. if(i==middle){
  38. System.out.print("#");//在元素后面用#号标识其为中间元素
  39. }
  40. System.out.print("");//各元素间用空格隔开
  41. }
  42. System.out.println();
  43. if(value==array[middle]){
  44. returnmiddle;
  45. }
  46. if(value<array[middle]){
  47. high=middle-1;//右侧的不要了
  48. }
  49. if(value>array[middle]){
  50. low=middle+1;//左侧的不要了
  51. }
  52. }
  53. return-1;//不存在该元素则返回-1
  54. }
  55. }

分享到:
评论

相关推荐

    Java array 数组用法源码集.rar

    Java array 数组用法源码集,比如测试数组、划分成绩等级、从方法中返回数组、二分查找法、求二维数组的长度、锯齿数组、处理二维数组等,相信通过这些基础的数组操作实例,会对你了解Java中的数组有很好的帮助作用...

    java源码包2

    Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印  util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理...

    Java基础精品课06-数组循环综合应用录屏3.二分查找法.mp4

    Java基础精品课06-数组循环综合应用录屏3.二分查找法.mp4

    java代码-数组二分查找

    java代码-数组二分查找

    java 折半查找法(二分查找)实例

    java 折半查找法(二分查找)实例,需要的朋友可以参考一下

    数据结构与算法复习(Java):排序、字符串、数组、链表、二分查找、二叉树.zip

    排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法,分支限界...

    java代码-日常练习23,取数组的最小值、最大值、排序及二分查找法

    java代码-日常练习23,取数组的最小值、最大值、排序及二分查找法

    Java基础入门源码:关于数组的例子.rar

    与数组相关的Java例子代码,比如测试数组、划分成绩等级、从方法中返回数组、二分查找法、求二维数组的长度、锯齿数组、处理二维数组等,对学习Java基础知识有很大帮助。

    Java数组相关的例子代码

    内容索引:Java源码,初学实例,数组 与数组相关的Java例子代码,比如测试数组、划分成绩等级、从方法中返回数组、二分查找法、求二维数组的长度、锯齿数组、处理二维数组等,对学习Java基础知识有很大帮助。

    Java数据结构和算法中文第二版

    递归的二分查找 汉诺(Hanoi)塔问题 归并排序 消除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树 为...

    21天学会Java之(Java SE第八篇):数组、冒泡排序法、二分法查找

    数组 数组的定义 数组是相同类型数据的有序集合,数组描述的是相同类型...数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中存储的。 数组声明 在声明数组变量

    Java数据结构和算法(第二版)

    递归的二分查找 汉诺(Hanoi)塔问题 归并排序 消除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树 为什么使用二叉树? ...

    java数据结构与算法第二版

    递归的二分查找 汉诺(Hanoi)塔问题 归并排序 消除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树 为...

    Java常用算法手册

    深入浅出,描述java算法,从0到1。...二分查找 O(logN) 无序数组的插入 O(1) 有序数组的插入 O(N) 无序数组的删除 O(N) 有序数组的删除 O(N) O(1)是最优秀的,O(logN)良好,O(N)还可以,O(N2)稍差(在冒泡法中见到)

    Java数据结构和算法中文第二版(1)

    递归的二分查找 汉诺(Hanoi)塔问题 归并排序 清除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树...

    javascript实现二分查找法实现代码

    在js中可能会更灵活的用到a-z上,或者用到拼音…或者用到…… 不过值得深思的一个问题是,如果为了实现对拼音之类的二分查找.而经过如下流程是否值得: 1。对拼音排序,貌似代码量不小吧。 2。然后再二分查找。这又...

    《Java和Android开发实战详解》第6到10章源代码-by 南邮-陈杨

    6.6.4 二分查找法 116 习题 117 第7章 类与对象 119 7.1 面向对象的应用程序开发 119 7.1.1 传统的应用程序开发 119 7.1.2 面向对象的应用程序开发 120 7.2 面向对象基础 120 7.2.1 对象基础 121 ...

    【剑指offer】面试题11-旋转数组的最小数字-完整的可执行代码(Java)

    把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE...

    使用javascipt—实现二分查找法

    代码如下:&lt;...&lt;head&gt;&lt;...charset=utf-8″&gt;... //二分查找法 数组必须是有序的  function binarySeach(arr,findval,leftIndex,rightIndex){ //找到中间的值 var midIndex=Math.floor((leftIndex

    Java数据结构和算法中文第二版(2)

    递归的二分查找 汉诺(Hanoi)塔问题 归并排序 清除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树...

Global site tag (gtag.js) - Google Analytics