数组元素的查找(折半查找)
来源:互联网 发布:图形算量软件 编辑:程序博客网 时间:2024/05/16 09:26
/* 数组的查找 折半查找:前提是该数组是有序的数组 */import java.util.Scanner;public class arrLookup{ public static void main(String[] args){ int[] arr = {1,4,6,8,34,56,78}; System.out.println("Please enter the number you want to find:"); Scanner in = new Scanner(System.in); int number = in.nextInt(); //halfSearch int index = halfSearch(arr, number); System.out.println("index = "+index); //halfsearch_2 int index_2 = halfSearch_2(arr, number); System.out.println("index_2 = "+index_2); //练习:将元素有序插入数组 Scanner in_1 = new Scanner(System.in); int number_1 = in_1.nextInt(); int index_3 = getIndex(arr, number_1); System.out.println("index_3 = "+index_3); } //折半查找 public static int halfSearch(int[] arr, int key){ int min = 0; int max = arr.length-1; int mid = (min+max)/2; //判断是否找到key while(key != arr[mid]){ if(key > arr[mid]) //key大于中间值,把中间值后一个角标赋值给min,max不变 min = mid+1; else if(key < arr[mid]) //key小于中间值,把中间值前一个角标赋值给max,min不变 max = mid-1; if(min > max) //如果min>max,说明该数组内没有key return -1; //该数组没有key mid = (min+max)/2; //折半 } return mid; } //第二种折半查找 public static int halfSearch_2(int[] arr, int key){ int min = 0; int max = arr.length-1; int mid; //判断min是否小于等于max while(min <= max){ mid = (min+max)>>1; if(key > arr[mid]) min = mid+1; else if(key < arr[mid]) max = mid-1; else if(key == arr[mid]) //找到key,返回角标 return mid; } return -1; } //练习:将元素有序插入数组 public static int getIndex(int[] arr, int key){ int min = 0; int mid; int max = arr.length-1; while(min <= max){ mid = (min+max)>>1; if(key > arr[mid]) min = mid+1; else if(key < arr[mid]) max = mid-1; else if(key == arr[mid]) return min; } return min; }}
0 0
- 数组元素的查找(折半查找)
- 递增数组元素的折半查找
- 数组的折半查找
- 数组元素查找中的线性查找和折半查找
- 黑马程序员_Java中数组元素的折半查找
- 折半查找确定插入数组中元素的位置
- 黑马程序员-折半查找数组中的元素
- 对数组中的元素进行折半查找
- 折半查找有序数组中的某个元素
- 有序数组的折半查找
- 字符串数组的折半查找
- [JAVA]数组的折半查找
- 无序数组的“折半查找”
- 数组的折半查找操作
- java数组(折半查找)
- 数组(七)--折半查找
- 折半查找元素
- 基本查找:数组元素无序(从头找到尾) * 二分查找(折半查找):数组元素有序
- 概率无向图模型
- 冒泡排序
- mac删除所有.DS_store文件
- 移动APP自动化测试框架对比
- 十进制转二进制
- 数组元素的查找(折半查找)
- 十进制转二进制,八进制,十六进制(查表法)
- 集合框架
- 文件的输入输出
- CSS中z-index属性具体
- 初学者前端开发学习(一)
- DDMS files not found:.....hprof-conv.exe
- 文件夹的拷贝
- eclipse恢复界面默认设置