建立一个ArrayTool工具
第一个
class ArrayTool
{
private ArrayTool () {} //空参数私有化
//获取一个数组的最大值
public static int getMax(int[] arr) // 因为功能函数里没有调用对象,所以用static
{
int max = 0;
for (int x=1;x<arr.length;x++)
{
if(arr[x]>arr[max])
max = x;
}
return arr[max];
}
//获取一个数组的最小值
public static int getMin(int[] arr)
{
int min = 0;
for (int x=1;x<arr.length;x++)
{
if(arr[x]<arr[min])
min = x;
}
return arr[min];
}
//定义一个置换功能,因为不需要对用户提供,所以可以设置为私有权限
private static void swap(int[] arr,int a,int b)
{
int temp =arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
//定义一个对数组的打印功能
public static void printArr(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]+" ]");
System.out.println();
}
//选择排序(从小到大)
public static void selectSort(int[] arr)
{
for(int x=0;x<arr.length-1;x++)
{
for(int y=x+1;y<arr.length;y++)
if (arr[x]>arr[y])
{
swap(arr,x,y);
}
}
}
//冒泡排序(从大到小)
public static void bubbleSort(int[] arr)
{
for (int x=0;x<arr.length-1;x++)
{
for (int y=0;y<arr.length-x-1;y++)
if (arr[y]<arr[y+1])
{
swap(arr,y,y+1);
}
}
}
//折半查询
public static int halfSearch(int[] arr,int key)
{
int min=0,max=arr.length-1,mid;
while (min<=max)
{
mid = (min+max)/2;
if(key>arr[mid])
min = mid+1;
else if(key<arr[mid])
max = mid-1;
else
return mid;
}
return -1;
}
}第二个
class ArrayDemo
{
public static void main(String[] args)
{
//ArrayTool tool = new ArrayTool(); //禁止空参数建立,因为在不同的类
int[] arr = {12,17,6,9,11,3,20};
int max = ArrayTool.getMax(arr);
int min = ArrayTool.getMin(arr);
System.out.println("max="+max+"\n"+"min="+min);
ArrayTool.printArr(arr);
ArrayTool.selectSort(arr);
ArrayTool.printArr(arr);
ArrayTool.bubbleSort(arr);
ArrayTool.printArr(arr);
int[] arr1 = {1,3,5,7,9,11};
int key = ArrayTool.halfSearch(arr1,8);
System.out.println("key="+key);
}
}
<< 上一篇
下一篇 >>
网友留言(0 条)