查询数组中的某个值,给数组排序

/*
 * 数组排序:冒泡排序,选择排序
 * 自动排序:sort();
 * 
 * 查找数组中的某个值:(一般返回 下标)
 * 1、遍历整个数组
 * 2、二分法(min、mid、max);(必须先排序)
 * 自动二分法查找:binarySearche();(必须先排序)
 */
public static void main(String[] args) {
	// TODO 自动生成的方法存根
	int [] arr = {2,5,8,4,3,6,9,1};
	MaoPaoList(arr);
	System.out.println(Arrays.toString(arr));
	
	int [] arr1 = {2,5,8,4,3,6,9,1};
	ChooseList(arr1);
	System.out.println(Arrays.toString(arr1));
	
	int [] arr2 = {2,5,8,4,3,6,9,1};
	getArrays(arr2,4);
	getArrays(arr2,10);
	
	int [] arr3 = {2,5,8,4,3,6,9,1};
	int dic = dichotomy(arr2,4);
	System.out.println(dic);
	int dic1 = dichotomy(arr2,10);
	System.out.println(dic1);
}

//封装冒泡排序(大到小)
public static void MaoPaoList(int [] arr){
	for(int i=0;i<arr.length-1;i++){
		for(int j=0;j<arr.length-1-i;j++){
			if(arr[j]>arr[j+1]){
				int temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
}
//封装选择排序(大到小)
public static void ChooseList(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[i];
				arr[i] = arr[j];
				arr[j] = temp;
			}
		}
	}
}

//封装遍历数组查找某个值
public static void getArrays(int [] arr,int value){
	int orderNumber = 0;
	for(int i=0;i<arr.length;i++){
		if(arr[i] == value){
			orderNumber = i;
			System.out.println(orderNumber);
			break;
		}
		if(i==arr.length-1 && arr[arr.length-1]!=value){
			System.out.println("查无此数据!");
		}
	}
	
}
//封装二分法查找某个值
public static int dichotomy(int [] arr,int value){
	Arrays.sort(arr);
	int max = arr.length-1;
	int mid = arr.length/2;
	int min = 0;
	while(arr[mid] != value){
		if(arr[mid] > value){
			max = mid - 1;
		}else if(arr[mid] < value){
			min = mid + 1;
		}
		if(min>max){
			return -1;
		}
		mid = (max+min)/2;
	}
	return mid;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值