java基础学习记录之数组折半查找的学习与练习四
2014-03-01 18:52
656 查看
/* 折半查找的练习。 折半查找只能查找有序数组。 */ class ArrayTest4 { /*折半查找的第一种方法。 public static int halfSearch(int[] arr,int key) { int min,max,mid; min=0; max=arr.length-1; mid=(max+min)/2; while(arr[mid]!=key) { if(key<arr[mid]) max=mid-1; else min=mid+1; mid=(min+max)/2; if(min>max) return -1; } return mid; } */ /*折半查找第二种方法。 public static int halfSearch_2(int[] arr,int key) { int min=0,max=arr.length-1,mid; while(min<=max) { mid=(max+min)>>1; if(key<arr[mid]) max=mid-1; else if(key>arr[mid]) min=mid+1; else return mid; } return min;//如果要插入某值的话,可以返回要插入的那个值在数组中插入的位置。 } */ public static int halfSearch(int[] arr,int key) { int min=0,max=arr.length-1,mid; while(min<=max) { mid=(max+min)>>1; if(key<arr[mid]) max=mid-1; else if(key>arr[mid]) min=mid+1; else return mid; } return -1; } public static void main(String[] args) { int[] arr={2,3,4,5,6,7,8,12,32,54,67}; int index=halfSearch(arr,12); System.out.println("index="+index); } }
相关文章推荐
- java基础学习记录之数组冒泡排序的学习与练习三
- java基础学习记录之利用数组进行进制转换的学习与练习五
- java基础学习记录之利用数组查表法进行进制转换的学习与练习六
- java基础学习记录之利用数组查表法进行进制转换优化的学习与练习七(十转二、十转八、十转十六)
- java基础学习记录之数组最值的学习与练习一
- java基础学习记录之数组选择排序的学习与练习二
- java基础学习记录之for嵌套学习与练习一
- java基础学习记录之for嵌套学习与练习二
- java基础学习记录之for嵌套学习与练习三
- 黑马程序员--Java基础学习(数组)第四天
- java基础学习项目练习之登录和注册 八
- JAVA 基础学习(个人记录)
- Java基础学习——数组初识(1)
- 2017/12/31Java基础学习——判断两个数组是否相同のArrays.equals(a, b)方法
- Java基础学习之io流的练习(NotePad的打开文件和保存文件)
- Java基础学习5_数组
- 黑马程序员--数组的排序和查找--java学习日记2(基础知识)
- Java基础学习总结——数组
- java 从零开始,学习笔记之基础入门<数组>(七)
- java学习记录——类和对象的练习3