zoukankan      html  css  js  c++  java
  • 查找算法之顺序查找

    参考:

    1. 顺序查找 | 博客园

    基本思想:

    顺序查找,就是从第一个元素开始,按索引顺序遍历待查找序列,直到找出给定目标或者查找失败。

    特点:

    1. 对待查序列(表)无要求 -- 待查找序列可以是有序,也可以是无序;

    2. 从第一个元素开始;

    3. 需要逐一遍历整个待查序列(除非已经找到);

    4. 若查找到最后一个元素还没找到,则查找失败;

    缺点:

    效率低 -- 需要遍历整个待查序列

    时间复杂度:

    O(n),平均查找时间 = 列表长度/2

    空间复杂度:

    1个待查序列+1个目标元素 <=> O(n)

    看一组示例,从一组数据[3,6,7,2,12,9,0,11]中查找12,

    初始状态:指针p指向列表第一个元素,即索引为0元素,开始向右滑动,以匹配、查找目标

    Step1:p指针开始向右滑行一个单位,进行比较

    Step2,3,直到4:查找到元素12,匹配目标12成功,索引=4

    示例代码

    data = [3,6,7,2,12,9,0,11]
    
    
    """
    sequence search 
    """
    def seqsearch(array, target):
        i = 0
        for i in range(len(array)):
            element = array[i]
            if element == target:
                print 'sucess to find out %d from array, index=%d'%(target, i)
                return i
    
        print 'fail to find out the target'
        return -1
    
    
    print seqsearch(data, 12) #sucess to find out
    print seqsearch(data, 8) #fail to find out

    运行结果

    sucess to find out 12 from array, index=4
    4
    fail to find out the target
    -1
  • 相关阅读:
    第3章 C++ I/O流技术
    第2章 C++模板技术
    第1章 C++编程技术
    第0章 目录
    判断鼠标移入移出方向设置
    获取数组最小值
    jquery里的宽度详解
    trigger,triggerhandler模拟事件
    表单验证 不能为负值或者字母
    arguments的用法
  • 原文地址:https://www.cnblogs.com/fortunely/p/9616597.html
Copyright © 2011-2022 走看看