//导包 import java.util.Random; import java.util.Scanner; public class DemoMaoPao { public static void main(String[] args) { // 创建Random随机数对象 Random ra = new Random(); // 定义一个整形数组,长度为二十 int[] arr=new int[20]; // 利用for循环将随机出来的20个范围在0-50的数赋值在数组中 for (int i = 0; i < arr.length; i++) { int num = ra.nextInt(50); arr[i]=num; } print(arr); // 冒泡排序;升序 for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1; j++) { if (arr[j]>arr[j+1]){ int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } print(arr);
// 二分法查找(有序数组) // 创建键盘录入对象 Scanner sc = new Scanner(System.in); System.out.println("输入你想查找的数(0-50):"); // 键盘录入查找的数 int n = sc.nextInt(); int front=0;//头 int end=arr.length-1;//尾 int index=0;//中值 while (front<=end){ index=(front+end)/2; if(arr[index]==n){ System.out.println("找到了数"+n+";索引为:"+index); break; }else if (n<arr[index]){ end=index-1; }else{ front=index+1; } if (front>end){ System.out.println("未找到数"+n); } } } // 输出数组方法print public static void print(int[] arr){ for (int i = 0; i <arr.length ; i++) { if (i==0){ System.out.print("该数组为["+arr[i]+","); }else if (i==arr.length-1){ System.out.print(arr[i]+"]"); }else{ System.out.print(arr[i]+","); } } System.out.println(); } }