JAVA学习第二周——数组
来源:互联网 发布:互联网共享打印机端口 编辑:程序博客网 时间:2024/06/06 04:04
1.二分查找法 面试题:
给定一个有序的数组,如果往该数组中存储一个元素,并保证这个数组还是有序的,那么这个元素的存储的角标如何获取
public static void main(String[] args) { // TODO Auto-generated method stub int [] arr = {13,15,19,28,33,45,78,106}; int index = halfSearch_1(arr,50); System.out.println("index="+index);}public static int halfSearch_1(int [] arr,int key){ int max,min,mid; min = 0; max = arr.length-1; while(min<=max) { mid = (max+min)>>1; if(key>arr[mid]) min = mid+1; else if(key<arr[mid]) max=mid-1; else return mid; } return min;}
2.给定一个有序数组,查找某一元素的角标
import java.util.*;//开头写上
int index1 = Arrays.binarySearch(arr,45);//折半查找,如果元素不存在,返回 -插入点-1,如果存在返回具体的角标位置;System.out.println("index="+index1);
3.获取一个整数的16进制表现形式
public static void toHex(int num){// int n1 = num & 15;// System.out.println("n1="+n1);// // num = num>>>4;// int n2 = num&15;// System.out.println("n2="+n2); for(int x = 0;x<8;x++) { int temp = num&15; if(temp>9) System.out.print((char)(temp-10+'A')); else System.out.print(temp);; num = num>>>4; }}
4.什么时候使用数组?
如果数据出现了对应关系,而且对应关系的一方是有序的数字编号。并作为角标使用,这时就必须要想到数组的使用查表法:根据运算的结果作为角标直接去查数组中对应的元素即可。public static void main(String[] args){ System.out.println(Integer.toBinaryString(-6)); //相当于toBinary(-6);}//十进制-->十六进制public static void toHex(int num){ trans(num,15,4);}//十进制-->二进制public static void toBinary(int num){ trans(num,1,1);}//十进制-->八进制public static void toOctal(int num){ trans(num,7,3);}public static void trans(int num,int base,int offset){ if(num==0) { System.out.println("0"); return; } //定义一个对印关系表 char [] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; /*一会查表会查到比较的数据。数据一多就先存储起来,在进行操作。所以定义一个数组,临时容器。 */ char [] arr = new char[8]; int pos = arr.length; while(num!=0) { int temp = num & base; arr[--pos] = chs[temp]; num = num>>>offset; } System.out.println("pos="+pos); for(int x=pos;x<arr.length;x++) { System.out.print(arr[x]); }}
5.
1 0
- JAVA学习第二周——数组
- Java学习第二周(1)--方法与一维数组
- Java学习第二周(2)--排序算法与二维数组
- 学习java第二周
- java and python学习——第二周leetcode刷题
- java学习总结——第二天
- Java学习笔记—第二章
- JAVA学习——数组
- java学习——数组
- JAVA学习——数组
- java学习 —— 数组
- Java学习——数组
- java基础学习—数组
- Java第二周学习日记
- Java进阶学习第二十一天——Filter学习
- No_16_0325 Java基础学习第二十四天—多线程学习总结
- java基础学习笔记第二天——流程控制
- JAVA学习之路——第二天
- 分享国内外好用的H5页面制作网站
- 学习了一下XML,并结合相应的知识讲解了一下spring的dubbo配置
- nodejs中 exports 和 module.exports 的区别
- 我的见解之hibernate(十一)
- BZOJ3714 [PA2014]Kuglarz
- JAVA学习第二周——数组
- Android WebView加载后有白边框的问题
- 第13章[1]:运算符的重载基本属性
- 批量建立软链接
- android输入框自动顶上去问题解决。
- Hibernate基础知识(7)
- s3cmd 快速评估RADOSGW的性能
- mr项目优化总结
- CTex的基本使用方法