public class ArrayTool
{/**
空参数构造函数。
*/
private ArrayTool(){}
/**
获取一个整形数组中的最大值。
@param arr 接受一个int类型的数组。
@return 会返回一个数组中的最大值。
*/
public static int getmax(int[] arr)
{int max=0;
for(int x=0;x<arr.length;x++)
{if(arr[x]>arr[max])
max=x;}
return arr[max];
}
/**
获取一个整形数组中的最小值。
@param arr 接受一个int类型的数组。
@return 会返回一个数组中的最小值。
*/
public static int getmin(int[] arr)
{int min=0;
for(int x=0;x<arr.length;x++)
if(arr[x]<arr[min])
{min=x;}
return arr[min];
}
/**
给int数组进行选择排序。
@param arr 接受一个int类型的数组。
*/
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);
}
}
}
}
/**
给int数组进行冒泡排序。
@param arr 接受一个int类型的数组。
*/
public static void bubblesort(int[] arr)
{for(int x=0;x<arr.length;x++)
{for(int y=0;y<arr.length-x-1;y++)
{if(arr[y]>arr[y+1])
{swap(arr,y,y+1);
}
}
}
}
/**
给数组中的元素进行位置的置换。
@param arr 接受一个int类型的数组。
@param a 要置换的位置。
@param a 要置换的位置。
*/
private static void swap(int[] arr,int a,int b)
{int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;}
/**
给数组中的元素打印,打印形式[elemet1,elemet2,·····]
*/
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.println(arr[x]+"]");
}
}
/**
查找元素在数组中的位置。
@param arr 接受一个int类型的数组。
@param a 接受一个未知数。
*/
public static int getIdex(int[] arr,int a)
{for(int x=0;x<arr.length;x++)
{if(arr[x]==a)
return x;}
return -1;}
/**
折半查找。
@param arr 接受一个int类型的数组。
@param key 未知数。
@return 会返回未知数的角标及不存在数组中的值。
*/
public static int halfserch(int[] arr,int key)
{int min=0,max=arr.length-1,mid;
while(min<=max)
{mid=(min+max)>>>1;
if(key>arr[mid])
min=mid+1;
else if(key<arr[mid])
max=mid-1;
else
return mid;}
return -1;}
}
|