查找算法

来源:互联网 发布:java和c哪个前景好 编辑:程序博客网 时间:2024/06/01 10:20
基本查找:适合数组元素无序(从头到尾查找)
二分查找:也叫折半查找。适合数组元素有序。每次都猜中间的那个元素,比较大或者小,就能减少一半的元素。
思想:
A:定义最小索引,最大索引
B:计算出中间索引
C:拿中间索引的值和要查找的元素进行比较。相等就直接返回当前的中间索引的,大了在左边找,小了在右边找
D:重新获取最小索引或最大索引:在左边找:max=mid-1; 在右边找:min=mid+1;
E:回到B
int min = 0;
       int max =arr.length - 1;
       int mid =(max + min) / 2;

       while(arr[mid] != value) {
          if (arr[mid]> value) {
             max = mid -1;
          }
          if (arr[mid]< value) {
             min = mid +1;
          }
          if (min >max) {
             return-1;
          }
          mid = (min +max) / 2;
       }
       returnmid;