package com.text_1; import java.util.Random; import java.util.Scanner; public class mppx { public static void main(String[] args) { // TODO 自动生成的方法存根 // 数组的二分查找法 // 前提:数组要排好序 // 1、随机生成数组 Random r = new Random(); int[] array = new int[9]; for (int i = 0; i < array.length; i++) { // 产生随机数 array[i] = r.nextInt(100); } // 遍历输出数组 System.out.println("从100个数字中随机9个数"); for (int t : array) { System.out.print(t + " "); } // 进行冒泡排序 for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length - 1; j++) { if (array[j] > array[j + 1]) { int t = array[j]; array[j] = array[j + 1]; array[j + 1] = t; } } } System.out.println(); System.out.println("排序后的数据"); for (int a : array) { System.out.print(a + " "); } System.out.println(); // 二分法找数字 // 1、输入需要寻找的数字 Scanner sc = new Scanner(System.in); System.out.println("请输入需要查找的数字:"); int a = sc.nextInt(); int b = -1;// 没找到输出-1 // 2、定义下标 int start = 0;// 开始索引 int end = array.length - 1;// 结束索引 while (start <= end) { int mid = (start + end) / 2; if (a == array[mid]) { b = mid; break;// 找到数字跳出 } else if (a > array[mid]) { start = mid + 1; } else { end = mid - 1; } } System.out.println("找到数字的位置是第" +(b+1)+"个"); } }
时间: 2024-10-10 05:14:40