首页 > 代码库 > 0913作业

0913作业

 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;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 }
技术分享

 

 

0913作业