数组的查找
来源:互联网 发布:游戏编程 知乎 编辑:程序博客网 时间:2024/06/14 03:53
二分查找法:查找的数组只能是有序的,不能手动排序
public static int halfSearch(int[] arr,key){ int max=0,min=0,mid=0; while(min<max){ mid=(min+mid)/2; if(key>arr[mid]){ min=mid+1; }else if(key<arr[mid]){ max=mid-1; }else{ return mid; } } return -1;}
如果是数组是无序,只能用for循环遍历数组;
当然java中提供了封装的方法可以直接使用:Arrays.binarySearch( )
此方法如果查找的值不存在返回(-min-1);
2.什么时候使用数组?
如果数据出现对应关系,且对应的一方是有序的数字编号,并作为角标使用,使用数组。
将这些数据存储到数组中,根据运算的结果作为角标
,直接去查数组的元素,即为查表法。
//十进制转换为任意进制public static void toHex(int num,int base,int offset){ if(num==0){ System.out.println("0"); return; } char ch={'0','1','2','3','4', '5','6','7','8','9',' A','B','C'.'D','E','F'};//建表 char[] arr=new int[32];//建一个新的数组,保存16进制 int pos=arr.length; //定义脚标; while(num!=0){ int temp=num & base;//转换进制 arr[--pos]=ch[temp]; num=num>>>offset; //offset偏移量 } System.out.println("pos="+pos); for(int x=pos;x<arr.length;x++){ System.out.println(arr[x]);
当然java中也提供了封装的方法可以直接使用:Integer.toBinaryString( );
阅读全文
0 0
- 二维数组的查找
- 二维数组的查找
- 查找数组的波谷
- 旋转数组的查找
- 二维数组的查找
- 二维数组的查找
- 数组的折半查找
- 二维数组的查找
- 二维数组的查找
- 数组的查找定位
- 二维数组的查找
- 二维数组的查找
- 有序数组的查找
- 二维数组的查找
- 二维数组的查找
- 二维数组的查找
- 一位数组的查找
- 二维数组的查找
- 《Effective C++》条款04总结
- 金格签章 页面签章 报服务器错 但是没请求服务器
- Java mail jar
- Android中进行微信第三方登录或分享如何将WXEntryActivity隐藏掉.
- 原始编译r40m的Anroid6.0(取UART打印)(分色排版)
- 数组的查找
- MySQL服务器参数配置介绍
- Html学习---5
- Mysql 访问控制1 Connection Verification
- shell 中数学计算总结
- 【Leetcode-Easy-141】Linked List Cycle
- 2017.10.19 Irish_Moonshine总结
- 用循环单链表实现约瑟夫环(c语言)
- 操作系统基础