Java学习 ---- 数组基础总结(3)

一、数组的应用:
1、将一组数据进行排序:
(1)使用方法 -----> 两种:
a、冒泡排序法
      中心思想:将这组中的前一个数与后一个数进行比较,最先确定最大值
在这里插入图片描述
b、选择排序法
      中心思想:将这组中的第一个数与后每一个数进行比较,最先确定最小值
在这里插入图片描述

2、在一组数中查找某个数的索引:
(1)使用方法 -----> 两种:
a、普通查找法 ------> 遍历数组,比较每一个对象

public static int searchNumber(int[] arr,int number){
	for(int i=0;i<arr.length;i++){
			if(arr[i]==number){
				return index;
			}
	}
}

b、二分查找法 -----> 必须是一组有序的数据
注意:其中的min、mid、max指的是数组的下标
在这里插入图片描述

public static int searchNumber(int[] arr,int number){
	int min=0;
	int max=arr.length;
	int mid=(min+max)/2;
	while(number!=arr[mid]){
		if(number>arr[mid]){
			min=mid+1;
		}else if(number<arr[mid]){
			max=mid-1;
		}
		if(max<min){
			return -1;
		}
		mid=(min+max)/2;
	}
	return mid;
}

/*  方法二 */
public static int searchNumber(int[] arr,int number){
	int min=0;
	int max=arr.length;
	while(mid<=max){
		mid=(mid+max)/2;
		if(number>arr[mid]){
			min=mid+1;
		}else if(number<arr[mid]){
			max=mid-1;
		}else{
			return mid;
		}
	}
	return -1;
}

3、数组反转:

/*   方法一   */
public static void reverse(int[] arr){
	for(int start=0,end=arr.length-1;start<end;start++,end--){
		int temp = arr[start];
		arr[start]=arr[end];
		arr[end]=temp;
	}
}
/*   方法二   */
public static void reverse(int[] arr){
	for(int start=0;start<arr.length/2;start++){
		int temp = arr[start];
		arr[start]=arr[arr.length-1-start];
		arr[arr.length-1-start]=temp;
	}
}

猜你喜欢

转载自blog.csdn.net/qq_41898534/article/details/85332301