Java 元素的查找
2021-03-03 04:27
                         标签:code   index   pre   print   sea   yar   array   turn   sys    1. 循环遍历查找 2. 二分法查找   前提:已经从小到大排序的数组序列。   原理:每次都以中间元素分割,如果中间的元素小于查找元素,则说明查找元素在后面,再从中间元素后面的元素为开始,接着查找,以此类推;如果中间元素大于要查找的元素,则说明查找元素再中间元素的左边,则从中间元素的前一个元素查找;   数组序列:12, 23, 45, 67, 122, 567, 890, 900;需要查找的元素是890   第一次查找:   begin = 0   end = 7     mid = (0+7)/2   67 
   第二次查找:   begin = 4   第三次查找:   begin = 6   end = 7   mid = 6   890 = 890   程序实现:     Java 元素的查找 标签:code   index   pre   print   sea   yar   array   turn   sys    原文地址:https://www.cnblogs.com/homle/p/14400073.html
  end = 7
  mid = 5
  567
public class SearchArray {
    public static void main(String[] args) {
        int[] arr = {44,2,11,98,55,34};
        int index = ArraySearch(arr,100);
        System.out.println("遍历查找结果:");
        System.out.println(index == -1? "该元素没有找到":"该元素的下标:"+index);
        int[] arr1 = {12, 23, 45, 67, 122, 567, 890, 900};
        int index1 = BinaryArray(arr1,45);
        System.out.println("二分法查找结果:");
        System.out.println(index1 == -1? "该元素没有找到":"该元素的下标:"+index1);
    }
    /**
     * 二分法查找
     * @param arr1
     * @param i
     * @return
     */
    public static int BinaryArray(int[] arr1, int i) {
        int begin = 0;
        int end = arr1.length - 1;
        while (begin  end){
            int mid = (begin + end)/2;
            if(arr1[mid] == i){
                return mid;
            }else if(arr1[mid]  i){
                begin = mid + 1;
            }else {
                end = mid - 1;
            }
        }
        return -1;
    }
    /**
     * 遍历查找
     * @param arr 需要查找的数组
     * @param i  需要查找的元素
     * @return   返回值
     */
    public static int ArraySearch(int[] arr, int i) {
        for (int j = 0; j ) {
            if (arr[j] == i){
                return j;
            }
        }
        return -1;
    }
}
上一篇:python函数的基础知识
下一篇:java-中文字符