长沙门户网站建设公司,网络运营者应当按照网络安全等级,微网站如何建立的,中国建设企业协会网站首页一、普通查找 对于数组和一个需要查找的元素来说#xff0c;普通查找的原理很简单#xff0c;即为从数组的第一个元素到最后一个元素进行遍历#xff0c;如果第i个元素的值等于我们需要查找的值#xff0c;那么返回找到的角标i#xff0c;否则返回-1表示没有查找到。这里以…一、普通查找 对于数组和一个需要查找的元素来说普通查找的原理很简单即为从数组的第一个元素到最后一个元素进行遍历如果第i个元素的值等于我们需要查找的值那么返回找到的角标i否则返回-1表示没有查找到。这里以java为例普通查找代码如下 1 package Daily_practice;2 3 public class Array_Search {4 5 public static void main(String[] args) {6 int[] arr1 {33,19,15,28,106,45,78,13};7 //普通查找8 int index1 getIndex(arr1,28);9 System.out.println(index1);
10 }
11 //普通查找,返回值所在的角标不存在返回-1
12 public static int getIndex(int[] arr,int value)
13 //value为需要查找的值
14 {
15 for(int i0;iarr.length;i)
16 {
17 if(arr[i] value)
18 return i;
19 }
20 return -1;
21 }
22 } 二、二分法查找 二分法是从中间元素开始查找假设整型数组为arr要查找的元素为value数组中间元素为arr[mid]若value小于arr[mid],则在左半边继续查找若value大于arr[mid],则在右半边继续查找如此循环知道value等于arr[mid]返回的角标mid即为要找的元素的位置。java代码如下 1 package Daily_practice;2 3 public class Array_Search1 {4 5 public static void main(String[] args) {6 int[] arr2 {13,15,19,28,33,45,78,106};7 //二分法查找8 int index2 halfSearch(arr2,28);9 System.out.println(index2);
10 }
11
12 //二分法查找
13 public static int halfSearch(int[] arr,int value)
14 {
15 int min,mid,max;
16 min 0;
17 max arr.length-1;
18 mid (minmax)/2;
19 while(arr[mid] ! value)
20 {
21 if(value arr[mid])
22 min mid 1;
23 else
24 max mid - 1;
25 if(max min)
26 return -1;
27 mid (minmax)/2;
28 }
29 return mid;
30 }
31
32 } 三、二分法查找和普通查找的优缺点分析 •普通查找 优点1原理简单代码容易实现 2不需要数组有序 缺点1当元素个数很多时效率较低 •二分法查找 优点1效率比普通查找高 缺点1要求数组必须是有序排列 四、总结 两种方法各有优点和局限至于具体用哪一种请读者根据实际情况而定文中若有不恰当之处请批评指正转载于:https://www.cnblogs.com/yaoHongBo/p/7456630.html