zoukankan      html  css  js  c++  java
  • 顺序表查找

    我们先来看一个单词:

    1)Sequential Search(顺序查找):那么顺序查找是什么呢?举个栗子,相信大部分同学都与我一样,无比怀念高中时代无忧无虑的日子;那时候的我们,书桌上总是摆满了各式各样的课本资料习题册(除了我hh);你是否拥有这样的小伙伴,她的习题资总是直接摊在书桌上,每次找课本都乱找一气(本人无疑)?你是否拥有这样的小伙伴她的书总是用书夹整整齐齐的摆放?顺序查找就好比我从我的课桌上散列的课本习题册的集合中找一本数学习题册,由于我的懒散,课本都是随意无序躺着的,我只能一本一本的找,直到找到为止(害。);即从表中的第一个(或最后一个)元素开始,逐一对比关键字和给定值比较;例如给定值’数学习题册‘,那么就查找集合表中的哪一个关键字与给定值符合。

    2)顺序查找算法(时间复杂度为O(n))

    int Sequential_Search(int *a,int n,int key)

    {

      int i;

      for( i = 1;i<=n;i++ )

      {

        if  ( a[i]==key )

        return i;

      }

      return 0;

    }

    3)顺序查找算法优化(没有优化之前每次查找后都需要判断下表是否越界;这里的优化在,从数组尾部开始循环,起始端设置哨兵站岗,若是最后访问到哨兵没有查询到结果,则查询失败,省略判断数组越界)

    int Sequential_Search2(int *a,int n,int key)

    {

      int i;

      a[0]=key;  /*设置a[0]为关键字值,称为“哨兵”*/

      i = n;  /*循环从数组尾部开始,遇到哨兵后停止*/

      while( a[i]!=key )

      {

        i--;

      }

      return i;

    }

  • 相关阅读:
    mysql查询太慢,我们如何进行性能优化?
    详解MySQL事务原理
    精通MySQL之锁篇
    精通MySQL之索引篇,这篇注重练习!
    mysql数据结构及mvcc
    mysql-主从同步
    redis分布式锁
    售后系统构建和商品状态重构经验与总结
    【更新2021-4-25】如何处理PoshSSH 连接主机时的"New-SSHSession : Key exchange negotiation failed."故障
    计算几何---大牛们
  • 原文地址:https://www.cnblogs.com/LearnSB/p/13282869.html
Copyright © 2011-2022 走看看