---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
/**
@author xxx
@version x.x
操作数组的工具类,包含遍历数组,获取最大值<br/>
选择排序,冒泡排序折半查找
*/
public class ArrayTools
{
/**
ArrayTools构造方法
*/
private ArrayTools(){}
/**
数组的折半查找方法
调用的时候传递int数组,和关键字,折半查找
如果关键字在数组中,返回所在下标
如果关键字不在数组中,返回-1
@param arr ,key
@return int
*/
public static int binarySearch(int[] arr, int key){
int max = arr.length - 1;
int min = 0 ;
int 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;
}
/**
数组的冒泡排序,升序排序
调用的时候,传递int数组
@param arr
*/
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);
}
}
}
}
/**
数组的选择排序,升序排序
调用的时候,传递int数组
@param arr
*/
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);
}
}
}
}
/**
数组的换位置
*/
private static void swap(int[] arr, int x , int y){
int temp = arr[x];
arr[x] = arr[y] ;
arr[y] = temp;
}
/**
获取数组中的最大值 调用传递int数组
返回最大值
@param arr
@return int
*/
public static int getMax(int[] arr){
int max = 0;
for(int x = 1 ; x < arr.length ; x++){
if(arr[max] < arr[x])
max = x ;
}
return arr[max];
}
/**
遍历数组
调用的时候,传递int数据
将数组输出在控制台
@param arr
*/
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("]");
}
}
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------