美文网首页
查找汇总

查找汇总

作者: 程序媛阿喜 | 来源:发表于2018-07-18 12:07 被阅读0次

    查找和排序是最基础也是最重要的两类算法,熟练地掌握这两类算法,并能对这些算法的性能进行分析很重要,这两类算法中主要包括二分、快速、归并等等。

    1. 顺序查找

    顺序查找又称线性查找。它的过程为:从查找表的最后一个元素开始逐个与给定关键字比较,若某个记录的关键字和给定值比较相等,则查找成功,否则,若直至第一个记录,其关键字和给定值比较都不等,则表明表中没有所查记录查找不成功,它的缺点是效率低下

    2. 二分查找

    二分查找又称折半查找,对于有序表来说,它的优点是比较次数少,查找速度快,平均性能好
    二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x。

    二分查找的时间复杂度为O(logn)

        static int funBinSearch(int[] array, int data) {
            if (array == null || array.length == 0) {
                return -1;
            }
            int start = 0;
            int end = array.length - 1;
            int mid;
            while (end >= start) {
                mid = (start + end) / 2;
                if (data == array[mid]) {
                    return mid;
                } else if (data > array[mid]) {
                    start = mid + 1;
                } else {
                    end = mid - 1;
                }
            }
            return -1;
        }
    

    相关文章

      网友评论

          本文标题:查找汇总

          本文链接:https://www.haomeiwen.com/subject/bmxkpftx.html