首页 > 代码库 > Java Day 05

Java Day 05

数组第二种定义
 
数组-遍历
 数组操作的核心思想就是对角标的操作;
 
数组-求最值
 1、循环 比较

排序
 选择排序 把原始数组分割成了两个数组,至少有一个是有序的
 冒泡排序 相邻元素比较

位置置换代码提取
 形参

排序性能问题
 选择排序,每一轮找到最小值后才换位

查找
 遍历去比较要查找的值,没有返回-1

折半查找(二分查找)
 前提条件:数组内元素唯一,且有序
 循环 判断条件有:中间值判断;首尾判断
 "/2" 相对与 ">>1"

 如果查找的元素不存在,直接返回插入点(-插入点-1)

 1     public static int binarySearch(int[]arr,int key){ 2         int start = 0; 3         int end = arr.length-1; 4         int mid = (start+end)/2; 5         while(end>start){ 6             if(key==arr[mid]){ 7                 return mid; 8             } 9             else if(key>arr[mid]){10                     start = mid+1;11             }else{12                     end=mid-1;    13             }14             mid = (start + end)/2;15         }16         return -1;17     }

 

进制转换
 转换为16进制--与运算 &15、无符号右移 >>>4
 (char)temp-10+‘A‘

 使用数组--查表法

 1     public static String trans(int num,int base,int offset){ 2         char[] chs ={‘0‘,‘1‘,‘2‘,‘3‘, 3                     ‘4‘,‘5‘,‘6‘,‘7‘, 4                     ‘8‘,‘9‘,‘A‘,‘B‘, 5                     ‘C‘,‘D‘,‘E‘,‘F‘}; 6         String ss=""; 7         while(true){ 8             int temp = num & base; 9             ss= chs[temp]+ss;10             num = num >>> offset;11             if(num==0)12                 return ss;13         }14     }


 Integer.toBinaryString()

Java Day 05