- //数组常用方法
- public class ArrayTest {
- public static void main(String[] args) {
- int arr[] = {1,66,35,78,2,5,6,3};
- //System.out.println(getMax(arr));
- //System.out.println(getMin(arr));
- //printArray(arr);
- //selectSort(arr);
- //bubbleSort(arr);
- int index = binarySearch(arr,35);
- printArray(arr);
- System.out.println(index);
- }
- //打印数组功能
- public static void printArray(int arr[]){
- for(int i=0;i<arr.length;i++){
- if(i!=arr.length-1){
- System.out.print(arr[i]+”,”);
- }else{
- System.out.println(arr[i]);
- }
- }
- }
- //获取最大值
- public static int getMax(int arr[]){
- int max=0;
- for(int i=0;i<arr.length;i++){
- if(arr[max]<arr[i]){
- max = i;
- }
- }
- return arr[max];
- }
- //获取最小值
- public static int getMin(int arr[]){
- int min=0;
- for(int i=0;i<arr.length;i++){
- if(arr[min]>arr[i]){
- min = i;
- }
- }
- return arr[min];
- }
- //选择排序
- 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]){
- int temp = arr[x];
- arr[x] = arr[y];
- arr[y] = temp;
- }
- }
- }
- }
- //冒泡排序
- public static void bubbleSort(int arr[]){
- for(int x=0;x<arr.length-1;x++){
- for(int y=0;y<arr.length-1-x;y++){
- if(arr[y]>arr[y+1]){
- int temp = arr[y];
- arr[y] = arr[y+1];
- arr[y+1] = temp;
- }
- }
- }
- }
- //二分法查找
- public static int binarySearch(int arr[],int key){
- selectSort(arr);
- 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;
- }
- }
//数组常用方法
public class ArrayTest {
public static void main(String[] args) {
int arr[] = {1,66,35,78,2,5,6,3};
//System.out.println(getMax(arr));
//System.out.println(getMin(arr));
//printArray(arr);
//selectSort(arr);
//bubbleSort(arr);
int index = binarySearch(arr,35);
printArray(arr);
System.out.println(index);
}
//打印数组功能
public static void printArray(int arr[]){
for(int i=0;i<arr.length;i++){
if(i!=arr.length-1){
System.out.print(arr[i]+",");
}else{
System.out.println(arr[i]);
}
}
}
//获取最大值
public static int getMax(int arr[]){
int max=0;
for(int i=0;i<arr.length;i++){
if(arr[max]<arr[i]){
max = i;
}
}
return arr[max];
}
//获取最小值
public static int getMin(int arr[]){
int min=0;
for(int i=0;i<arr.length;i++){
if(arr[min]>arr[i]){
min = i;
}
}
return arr[min];
}
//选择排序
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]){
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
//冒泡排序
public static void bubbleSort(int arr[]){
for(int x=0;x<arr.length-1;x++){
for(int y=0;y<arr.length-1-x;y++){
if(arr[y]>arr[y+1]){
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
//二分法查找
public static int binarySearch(int arr[],int key){
selectSort(arr);
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;
}
}