public class Test16 {
/**
* @param args
*/
public static void main(String[] args) {
int[] arr=new int[]{4,10,22,18,19,7,15};
int max=getMax(arr);
System.out.println(max);
bubbleSort(arr);
printArray(arr);
int index=halfSearch(arr,4);
System.out.println("index="+index);
}
/**
* 获取数组最大值
* @param arr
*/
public static int getMax(int[] arr){
int max=arr[0];
for(int i=1;i<arr.length;i++){
max=(max>arr[i])?max:arr[i];
}
return max;
}
/**
* 选择排序
* @param arr
*/
public static void selectSort(int[] arr){
for(int i=0;i<arr.length-1;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
int temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
}
}
}
/**
* 冒泡排序
* @param arr
*/
public static void bubbleSort(int[] arr){
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
/**
* 二分查找
* @param arr
*/
public static int halfSearch(int[] arr,int key){
int min=0;
int max=arr.length-1;
int mid=(min+max)>>1;
while(arr[mid]!=key){
if(min>max){
return -1;
}
if(key<arr[mid]){
max=mid-1;
mid=(min+max)>>1;
}
else{
min=mid+1;
mid=(min+max)>>1;
}
}
return mid;
}
/**
* 打印数组
* @param arr
*/
public static void printArray(int[] arr){
System.out.print("[");
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]);
if(i!=arr.length-1)
System.out.print(",");
else
System.out.println("]");
}
}
}
数组排序、求最值、二分查找
最新推荐文章于 2022-05-31 11:21:54 发布