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 }
![]()