zoukankan      html  css  js  c++  java
  • 第七次日志

    <查找>

    列表:由同一类型的数据元素(或记录)构成的集合,可利用任意数据结构实现。

    关键字:数据元素的某个数据项的值,用它可以标识列表中的一个或一组数据元素。

    主关键字:惟一标识列表中的一个数据元素。

    次关键字:不是主关键字,就为次关键字。

    当数据元素仅有一个数据项时,数据元素的值就是关键字。

    平均查找长度(ASL):为确定数据元素在列表中的位置,需和给定值进行比较的关键字个数的期望值,称为查找算法在查找成功时的平均查找长度。

    假设查找每个数据元素的概率相等,即Pi=1/n
    • 则顺序查找算法的平均查找长度为:
    ASL=11/n+21/n+…+n1/n
    =(1+2+…+n)
    1/n
    =(n+1)/2

    假设列表长度为n,从最后一个元素开始找起:
    • 查找第 i 个元素,需进行(n-i+1)次比较

    • 若顺序查找法从第一个元素开始找起,则平均
    查找长度为((n+1)/2,一样! )

    二叉排序树(二叉查找树)
    定义:二叉排序树或者是一棵空树,或者是具有如下性质的二叉树:

    若它的左子树非空,则左子树上所有结点的值均小于它的根结点的值;

    若它的右子树非空,则右子树上所有结点的值均大于(或大于等于)它的根结点的值;

    它的左、右子树也分别为二叉排序树。

    结点的平衡因子--Balance Factor
    • 定义:结点左子树深度与右子树深度之差。
    • AVL树任一结点平衡因子只能取 -1, 0, 1
    • 如果一个结点的平衡因子的绝对值大于1,则这棵二叉搜索树就失去了平衡, 不再是AVL树。

    计算式查找法—哈希法
    基本思想:首先在元素的关键字 k 和元素的存储位置 p 之间建立一个对应关系 f,使得 p=f(k),f 称为哈希函数。 

    创建哈希表时,把关键字为 k 的元素直接存入地址为 f(k) 的单元;

    以后当查找关键字为 k 的元素时,再利用哈希函数计算出该元素的存储位置 p=f(k),从而达到按关键字直接存取元素的目的。

    伪随机数法
     采用一个伪随机函数做哈希函数,即:h(key)=random(key)。

    除留取余数法
     假设哈希表长为 m,p 为小于等于 m 的最大素数,则哈希函数为: H(k)=k%p 其中 % 为模 p 取余运算。

    开放定址法(再散列法)
    根据再散列函数形式:
    Hi=(H(key)+di)% m i=1,2,…,n di的取值方式不同,相应的再散列方式主要有以下三种:

    1. 线性探测再散列 (线性探查法)
    2. 二次探测再散列
    3. 伪随机探测再散列
  • 相关阅读:
    分解质因数
    第十一次作业
    第十次作业
    第九次作业
    第八次作业
    Radar Installation
    Stall Reservations
    Sunscreen
    天才ACM
    奇数码问题
  • 原文地址:https://www.cnblogs.com/scc19/p/13096448.html
Copyright © 2011-2022 走看看