【算法学习笔记二】查找搜索算法

一.顺序搜索(Linear search)

对于一个n元数组,查找某一元素是否等于x,则需要将数组从头到尾与x做判断,运气好的话,可能比较第一次就找到,运气坏的话可能最后一个元素才找到或者都没找不到,即元素比较次数是1~n之间。

输入:n个元素的数组A[1...n]和元素x
输出:如果x=A[j],1≤j≤n,则输出j,否则输出0
    j<-1
    while (j

二.二分搜索(Binary search)

令A[low...high]为元素按升序排列的非空数组,A[mid]为中间元素,假定x>A[mid]且在A中,则它必在A数组的右半集合中,接下来只需在A[mid+1...high]中搜索x,A[low...mid]被丢弃掉。循环搜索,直至找到x。

    low<-1, high<-n, j<-0
    while (low≤high) and (j=0)
        mid<-(low+high)/2(取下整)
        if x=A[mid] then j<-mid
        else if x

你可能感兴趣的:(算法分析,算法,二分法,查找搜索,比较次数,证明)