zoukankan      html  css  js  c++  java
  • 算法-查找与哈希算法

      ◎ 查找定义:计算机查找数据的优点是快速,但是当数据量很庞大时,如何在最短的时间内有效的找到所需的数据则是一个相当重要的课题。影响查找时间的主要因素有算法、数据存储的方式以及结构。查找和排序法一样,如果是以查找过程中被查找的表格或数据是否有变动来分类,那么可以分为静态查找(Static Search)和动态查找(Dynamic Search)。

       查找方式:静态查找是指数据在查找过程中不会有添加、删除或更新等操作,例如符号表查找就属于一种静态查找。动态查找是指查找的数据过程会经常地添加、删除或更新。例如在网络上查找数据就是一种动态查找。查找的操作和算法有关,具体进行的方式和所选择的数据结构有很大的关联。

       查找算法:

           ◐ 顺序搜索法:

           ◐ 二分查找法:

           ◐ 插值查找法:

           ◐ 哈希查找法:

      

    1.1 顺序搜索法

      1.1.1 顺序搜索法定义:

      顺序查找法又称为线性查找法,是一种简单的查找法。它是将数据一项一项地按照顺序逐个查找,所以不管数据顺序如何,都得从头到尾遍历一次。该方法的优点是文件在查找前不需要进行任何的处理与排序;缺点是查找速度比较慢。如果数据没有重复,找到数据就可以中止查找,那最恶劣情况下是未找到数据,需要进行n次比较,最好情况下则是一次就找到数据,只需1次比较。表示当n很大的时候,利用顺序搜索法是不太适合的,它是一种适合小数据文件的查找方法。

      1.1.2 顺序搜索法例子:

      没必要

    1.2 二分查找法

      1.2.1 二分查找法

      如果要查找的数据已经事先排序好了,就可以使用二分法来查找。二分法是将数据分割成两等份,在比较键值与中间值的大小。如果键值小于中间值,就可以确定要查找的数据在前半部分,否则在后半部分,如此分割直到找到为止,或者确定不存在。

  • 相关阅读:
    os和sys模块
    time模块
    collections模块
    re模块
    Python初识一
    Python闭包函数
    压栈
    isinstance()和issubclass()
    匿名函数--lambda函数
    机器学习入门文章
  • 原文地址:https://www.cnblogs.com/zy-cnblogs/p/13259549.html
Copyright © 2011-2022 走看看