数组的定义
注意:数组越界,空指针异常
数组的操作:遍历、获取最值
选择排序、冒泡排序
public class Sort {
/*
*实现选择排序和冒泡排序
*/
public static void main(String[] args) {
int[] arr={1,5,6,9,8,4,2,12};
//selectSort(arr);
bubbleSort(arr);
for(int i=0;i<arr.length;i++)
{
System.out.println(arr[i]+",");
}
}
public static void selectSort(int[] arr)//选择排序
{
for(int i=0;i<arr.length;i++)
{
for(int j=i+1;j<arr.length;j++)
{
if(arr[i]>arr[j])
{
int temp;
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
public static void bubbleSort(int[] arr)//冒泡排序
{
for(int i=0;i<arr.length;i++)
{
for(int j=0;j<arr.length-i-1;j++)
{
if(arr[j]>arr[j+1])
{
int temp;
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
}
/*二分查找法*/
class HalfSearch
{
public static void main(String[] args)
{
int[] arr={1,5,6,8,12,35,89};
System.out.println(halfSearch1(arr,35));
}
public static int halfSearch1(int[] arr,int key)
{
int min=0,max=arr.length-1,mid=(min+max)/2;
while(arr[mid]!=key)
{
mid=(min+max)/2;
if(arr[mid]<key)
{
min=mid+1;
}
else if(arr[mid]>key)
{
max=mid-1;
}
if(min>max)
{
return -1;
}
}
return mid;
}
public static int halfSearch2(int[] arr,int key)
{
int min=0,max=arr.length-1,mid=(min+max)/2;
while(min<=max)
{
mid=(min+max)/2;
if(arr[mid]<key)
{
min=mid+1;
}
else if(arr[mid]>key)
{
max=mid-1;
}
else
{
return mid;
}
}
return -1;
}
}
/*数值转换*/
class Jinzhi
{
public static void main(String[] args)
{
//toB(4);
//toH(60);
//toBin(4);
//toBa(8);
toHix(60);
}
public static void toB(int num)
{
StringBuffer sb=new StringBuffer();
while(num>0)
{
//System.out.println(num%2);
sb.append(num%2);
num/=2;
}
System.out.println(sb.reverse());
}
public static void toH(int num)
{
StringBuffer sb=new StringBuffer();
for(int i=0;i<8;i++)
{
int temp=num & 15;
if(temp>9)
{
sb.append((char)(temp-10+'A'));
}
else
{
sb.append(temp);
}
num=num >>> 4;
}
System.out.println(sb.reverse());
}
public static void chabiao(int num,int base,int offset)//用查表法实现数制转换,base表示需要 & 的数值,offset表示需要 >>> 的数值
{
char[] chs = {'0','1','2','3'//用相应的角标来对应用来表示进制的字符
,'4','5','6','7'
,'8','9','A','B'
,'C','D','E','F'};
char[] arr=new char[32];//用来储存转换后的数组
int pos=arr.length;//表示正在转换的位置
while(num!=0)
{
arr[--pos]=chs[num & base];
num=num>>>offset;
}
for(int i=pos;i<arr.length;i++)
{
System.out.print(arr[i]);
}
}
public static void toHix(int num)
{
chabiao(num,15,4);
}
public static void toBin(int num)
{
chabiao(num,1,1);
}
public static void toBa(int num)
{
chabiao(num,7,3);
}
}