数组查找

2021-07-04 11:06

阅读:710

标签:增强for循环   大数   code   main   复杂   bsp   遍历   length   ==   

元素的查找:元素无序,循环遍历;元素有序,二分查找 - 时间复杂度O(logn),空间复杂度o(1)

 1 class ArraySearch{
 2     public static void main(String[] args){
 3         /*//1.定义数组,无序
 4         int[] arr={1,6,3,8,4};
 5 
 6         //要查找的数
 7         int num=3;
 8 
 9         //for循环实现
10         /*for(int i=0;i11             //判断
12             if(arr[i]==num){
13                 System.out.println(i);
14                 break;
15             }
16         }*/
17 
18         /*//增强for循环
19         int count=0;
20         for(int i:arr){
21             if(i==num){
22                 System.out.println(count);
23                 break;
24             }
25 
26             count++;
27         }*/
28 
29 
30 
31 
32         //2.有序数组的查找
33         //定义有序数组
34         int[] arr={1,2,3,5,7,9};
35 
36         //最小下标,最大数的下标,中间下标
37         int min=0;
38         int max=arr.length-1;
39         int mid=(min+max)/2;
40 
41         //查找数
42         int num=9;
43 
44         //
45         boolean flag=true;
46 
47         //
48         while(arr[mid]!=num){
49             //大于num
50             if(arr[mid]>num){
51                 max=mid-1;
52             }
53 
54             //小于num
55             if(arr[mid]num){
56                 min=mid+1;
57             }
58 
59             //判断临界
60             if(min>max){
61                 System.out.println("数据有误");
62                 flag=false;
63                 break;
64             }
65             //重新计算中间值
66             mid=(max+min)/2;
67         }
68 
69         //输出下标
70         if(flag)
71         System.out.println(mid);
72     }
73 }

 

数组查找

标签:增强for循环   大数   code   main   复杂   bsp   遍历   length   ==   

原文地址:https://www.cnblogs.com/nanlinghan/p/9614077.html


评论


亲,登录后才可以留言!