美文网首页
查找汇总

查找汇总

作者: 程序媛阿喜 | 来源:发表于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