黑马程序员技术交流社区
标题:
数组操作工具
[打印本页]
作者:
林海东
时间:
2015-8-6 00:07
标题:
数组操作工具
(5)操作:
//1,获取数组中的最大值,以及最小值。
public static int GetMax(int[] arr)
{
int max=arr[0];
for (int x=1;x<arr.length ;x++ )
{
if (max<arr[x])
{
max=arr[x];
}
}
return max;
}
public static int GetMin(int[] arr)
{
int min=arr[0];
for (int x=1;x<arr.length ;x++ )
{
if (min>arr[x])
{
min=arr[x];
}
}
return min;
}
//2,对给定数组进行排序(选择排序)。
public static void selectSort(int[] arr)
{
for (int x=0;x<arr.length-1 ;x++ )//x参与循环,每次循环都能确定最前面的数字,且循环一次,比较次数减一。
{
for (int y=x+1;y<arr.length ;y++ )
{
if (arr[x]>arr[y])
{
int temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
}
//3(冒泡排序)
public static void bubbleSort(int[] arr)
{
for (int x=0;x<arr.length-1; x++)//x控制循环次数,每次循环都能确定最后一位,且循环一次,比较次数减一。
{
for (int y=0;y<arr.length-x-1 ;y++ )
{
if (arr[y]>arr[y+1])
{
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
}
//4打印数组
public static void printArray(int[] arr)
{
System.out.print("[");
for (int x=0; x<arr.length;x++ )
{
if (x!=arr.length-1)
{
System.out.print(arr[x]);
}
else
{
System.out.print(arr[x]+"]");
}
}
}
//5反转数组
public static void reverseArray(int [] arr)
{
for(int start=0,end=arr.length-1; start<end ; start++,end--)//定义变量控制首尾位置
{
int temp = arr[start];//交换位置
arr[start] = arr[end];
arr[end] = temp;
}
}
//6数组查找,折半查找,必须要保证该数组是有序的数组。
public static int halfSerach(int[] arr,int key)
{
int min=0;
int max=arr.length-1;
int mid=(min+max)/2;
while (arr[mid]!=arr[key])
{
if (arr[key]>arr[mid])//判断key与数组中间元素值的大小,然后改变相应的min和max;
{
min=mid+1;
}
else if (arr[key]<arr[mid])
{
max=mid-1;
}
if (min>max)//判断出现min大于max则数组中key不存在;
{
return -1;
}
mid=(min+max)/2;//每循环一次,改变mid的值
}
return mid;
}
//7进制转换
class HexConversion
{
//十进制-->二进制
public static void toBin(int num)
{
trans(num,1,1);
}
//十进制-->八进制
public static void toBa(int num)
{
trans(num,7,3);
}
//十进制-->十六进制
public static void toHex(int num)
{
trans(num,15,4);
}
public static void trans(int num,int base,int offset)
{
if (num==0)//0不需要转换
{
System.out.println(0);
}
char[] chs = {'0','1','2','3',
'4','5','6','7',
'8','9','A','B',
'C','D','E','F'};//设置数组
char[] arr = new char[32];//定义一个容器,用于接收&运算后的值,所对应的chs数组中的元素。
int pos = arr.length;
while(num!=0)
{
int temp = num & base;//获取二进制最后的base位数值
arr[--pos] = chs[temp];
num = num >>> offset;//获取所有二进制位的所有值。
}
for(int x=pos; x<arr.length; x++)
{
System.out.print(arr[x]);//将arr[]数组打印
}
return ;
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2