java数组(折半查找)
来源:互联网 发布:软件三层结构 编辑:程序博客网 时间:2024/05/16 06:13
- //基本查找方法(获取key第一义出现在数组中的位置,如果返回的是-1,则代表该key在该数组中不存在)
- public static int getindex(int arr[],int key)
- {
- for(int i=0;i<arr.length;i++)
- {
- if(arr[i]==key)
- return (i);
- }
- return (-1);
- }
- //折半查找可以提高效率,但必须保证该数组是有序的。
- public static int halfSearch(int arr[],int key)
- {
- int min,max,mid;
- min=0;
- max=arr.length-1;
- mid=(min+max)/2;
- while(arr[mid]!=key)
- {
- if(key>arr[mid])
- min=mid+1;
- else if(key<arr[mid])
- max=mid-1;
- if(min>max)
- return -1;
- mid=(max+min)/2;
- }
- return mid;
- }
- //折半查找的第二种方式。
- public static int halfSearch_2(int arr[],int key)
- {
- int min=0,max=arr.length-1,mid;
- while(min<=max)
- {
- //相当于min=(max+min)/2;
- mid=(max+min)>>1;
- if(key>arr[mid])
- min=mid+1;
- else if(key<arr[mid])
- max=mid-1;
- else
- return mid;
- }
- return -1;
- }
- /*
- 练习:将一个数插入到一个有序的数组中,并保持该数组有序。
- */
- public static int getindex_2(int arr[],int key)
- {
- int min=0,max=arr.length-1,mid;
- while(min<=max)
- {
- //相当于min=(max+min)/2;
- mid=(max+min)>>1;
- if(key>arr[mid])
- min=mid+1;
- else if(key<arr[mid])
- max=mid-1;
- else
- return mid;
- }
- //min的位置就是该数适合插入到数组中的位置
- return min;
- }
0 0
- java数组(折半查找)
- [JAVA]数组的折半查找
- java数组之二分查找法(折半查找)
- 数组(七)--折半查找
- JAVA数组排序——二分(折半)查找
- 数组元素的查找(折半查找)
- 查找-二分查找(折半查找)-java
- java数组操作2.折半查找
- java实现有序数组的折半查找
- 折半查找(java版)
- java折半查找(二分法)
- 折半查找(二分查找)Java实现
- 二分查找(折半查找),Java实现
- java-数组静态初始化、选择排序、冒泡排序、数组的折半查找、折半查找练习
- Java代码实现一维数组的二分查找(折半查找)(非递归方法)
- java日常学习:直接查找法和二分法(折半法)查找数组元素
- [源码]排序数组二分法(折半)查找
- 数组的折半查找
- Linux软连接和硬链接
- 关于搜索的优化
- ava JVM虚拟机选项 Xms Xmx PermSize MaxPermSize 区别
- java冒泡排序
- 调用系统自带的发短信Activity
- java数组(折半查找)
- java进制之间转换
- 【.NET线程--进阶(一)】--线程方法详解
- Android有效解决加载大图片时内存溢出的问题
- 解决WebService 第一次慢的问题 在wince下
- 黑夜给了我黑色的眼睛,我却用它研究CV
- 善用指针
- java面向对象(成员变量和局部变量)
- HDU 4745 Two Rabbits(非连续最长回文子序列,区间DP)