1 import java.util.Random; 2 3 public class Text1 4 { 5 public static void main(String[] args) 6 { 7 int[] num=new int[8]; //方法调用区-----定义8个随机数存放的数组 8 num=getNumbers(num,1,32); //调用方法获取随机数并保存 9 show(num); //测试打印方法一 10 show2(num); //测试打印方法二 11 mySort(num); //冒泡排序 12 show(num); //打印结果 13 search2(num,22); //二分查找法查找数值22,可使用Scanner输入数值 14 } 15 //方法实现区-----获得不重复的随机数,范围是m-n;注意输入数值时不要让接收数组超过随机数的数量,代码加个if,else即可解决 16 public static int[] getNumbers(int[] num,int m,int n) 17 { 18 Random random=new Random(); 19 int r; 20 for(int i=0;i<num.length;i++) 21 { 22 r=random.nextInt(n)+m; 23 num[i]=r; 24 for(int j=0;j<i;j++) 25 { 26 if(num[j]==num[i]) 27 { 28 i--; 29 break; 30 } 31 } 32 } 33 return num; 34 } 35 //遍历数组并打印出来,方法一 36 public static void show(int[] num) 37 { 38 for(int i=0;i<num.length;i++) 39 { 40 System.out.print(num[i]+" "); 41 } 42 System.out.println(); 43 } 44 //遍历数组并打印出来,方法二 45 public static void show2(int[] num) 46 { 47 for(int loop:num) 48 { 49 System.out.print(loop+" "); 50 } 51 System.out.println(); 52 } 53 //冒泡排序 54 public static void mySort(int[] num) 55 { 56 int change; 57 for(int i=0;i<num.length-1;i++) 58 { 59 for(int j=num.length-1;j>i;j--) 60 { 61 if(num[j-1]>num[j]) 62 { 63 change=num[j]; 64 num[j]=num[j-1]; 65 num[j-1]=change; 66 } 67 } 68 } 69 } 70 //二分查找法,百度搜索资料 71 public static void search2(int[] num,int n) 72 { 73 int start=0; 74 int end=num.length-1; 75 int state=1; 76 while(start<=end) 77 { 78 int middle=(start+end)/2; 79 if(n>num[middle]) 80 { 81 start=middle+1; 82 }else if(n<num[middle]) 83 { 84 end=middle-1; 85 }else if(n==num[middle]) 86 { 87 state=0; 88 System.out.println("该数值位于数组num["+middle+"]中"); 89 break; 90 } 91 } 92 if(state==1) 93 { 94 System.out.println("该数值查询不到!"); 95 } 96 } 97 }