精华内容
下载资源
问答
  • 数据处理方法

    2020-12-30 18:41:45
    列表法2. 作图法3. 逐差法4. 最小二乘法 1. 列表法 2. 作图法 3. 逐差法 ()优点: 充分利用测量数据,保持多次测量取平均值减小误差优越性 可以绕过某些定值未知量求得测量结果。 ()要求: 两个物理量...

    1. 列表法

    2. 作图法

    3. 逐差法

    ()优点:

    • 充分利用测量数据,保持多次测量取平均值减小误差的优越性
    • 可以绕过某些定值未知量求得测量结果。

    ()要求:

    • 两个物理量的函数关系可表达为多项式;
    • 自变量必须是等间距变化,且较因变量有更高的测量准确度。

    4. 最小二乘法

    展开全文
  • 常用数据分析与处理方法 列表法 图示法 最小二乘法拟合经验方程 逐差法 实验结果的表示 列表法 列表法没有统一的格式 设计表格要求能充分反映列表法的优点初学者要注意 (1)栏目要注明名称和单位 (2)栏目的顺序应注意...
  • 处理冲突4种方法,以下只介绍两种 (一)开地址,开地址常用办法又分为三种 1.线性探测 2.二次探测 3.伪随机探测 (二)链地址(拉链) 1.基本概念 2.链地址建立散列表步骤 3.链地址...

    在这里插入图片描述

    散列表的概念

    在这里插入图片描述

    散列表的两个例子

    在这里插入图片描述
    在这里插入图片描述

    散列表存储的方法,主要是哈希函数

    在这里插入图片描述

    术语:冲突

    在这里插入图片描述

    术语:同义词

    在这里插入图片描述

    处理冲突的4种方法,以下只介绍两种

    在这里插入图片描述

    (一)开地址法,开地址法常用办法又分为三种

    在这里插入图片描述
    1.线性探测法
    在这里插入图片描述
    在这里插入图片描述

    2.二次探测法
    在这里插入图片描述

    3.伪随机探测法
    在这里插入图片描述

    (二)链地址法(拉链法)

    1.基本概念
    在这里插入图片描述
    2.链地址法建立散列表步骤
    在这里插入图片描述
    3.链地址法优点
    在这里插入图片描述

    散列表的查找

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    散列表查找效率

    在这里插入图片描述

    结论

    在这里插入图片描述

    展开全文
  • 优点:以关键码key某个线性函数值为散列地址,不会产生冲突。 缺点:要占用连续地址空间,空间效率低。 例:Hash(key)=a*key+b(a、b是常数) ②除留余数(优) Hash(key)=key % p(p是一个整数) 关键:...

    散列表(空间换时间)

    散列函数的构建

    ①直接定址法
    优点:以关键码key的某个线性函数值为散列地址,不会产生冲突。
    缺点:要占用连续地址空间,空间效率低。
    例:Hash(key)=a*key+b(a、b是常数)

    ②除留余数法(优)
    Hash(key)=key % p(p是一个整数)
    关键:如何选取p?
    技巧:设表长为m,取p<=m且为质数

    处理冲突的方法

    ①开放地址法(开地址法)
    思想:有冲突时就去找下一个为空的位置
    例:除留余数法 Hi=(Hash(key)+di)% m ,( di为增量序列)
    常用方法:
    a:线性探测法

    di为1,2,3,4,,,,m-1

    b:二次探测法

    di为1^2
    -1^2,
    2^2,
    -2^2
    ,,,,
    q^2

    c:伪随机探测法

    di为伪随机数序列

    ②链地址法(拉链法)(优)
    思想:相同散列地址的记录链成一个单链表,然后一个数组将m个单链表的表头指针。
    优点:非同义词(散列函数的值相同)不会冲突。
    链表上的结点空间为动态申请,适合于结点数量不确定的

    散列表的查找

    过程:给定 k 值–>计算Hash(k)–>判断地址是否非空–>比对关键字(空就查找失败)–>按处理冲突的方法计算Hi

    展开全文
  • 大话数据结构

    2019-01-10 16:35:22
    因为美国黑夜就是中国白天,利用互联网,他员工白天上班就可以监控到美国仓库夜间实际情况,如果发生了像火灾、偷盗这样突发事件,及时电话到美国当地相关人员处理 7.4.1邻接矩阵 224 7.4.2邻接表 228 ...
  • 大话数据结构 程杰

    2018-09-01 10:06:43
    因为美国黑夜就是中国白天,利用互联网,他员工白天上班就可以监控到美国仓库夜间实际情况,如果发生了像火灾、偷盗这样突发事件,及时电话到美国当地相关人员处理 7.4.1邻接矩阵 224 7.4.2邻接表 228 ...
  • 通篇以一种趣味方式来叙述,大量引用了各种各样生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到一些经典算法做到逐行分析、多算法比较。与市场上同类数据结构图书相比,本书内容趣味易...
  • [数据结构复习]查找

    2018-12-20 14:52:00
    查找 文章目录查找概述线性表查找顺序查找改进后顺序查找优点缺点折半查找条件基本思想实现折半查找判定树定义构造性能分析索引顺序...查找散列表基本思想散列函数数字分析折叠除留余数随机数总结冲突处理...

    查找

    概述

    • 查找 :在具有相同类型的记录构成的集合中找出满足给定条件的记录。

    • 查找的结果 :若在查找集合中找到了与给定值相匹配的记录,则称查找成功;否则,称查找失败。

    • 关键码:可以标识一个记录的某个数据项。

    • 键值:关键码的值。

    • 主关键码:可以唯一地标识一个记录的关键码。

    • 次关键码:不能唯一地标识一个记录的关键码。

    • 静态查找:不涉及插入和删除操作的查找 。(在查找过程中不进行插入删除等操作)

    • 动态查找:涉及插入和删除操作的查找。 (涉及插入和删除操作)

    • 查找结构 :面向查找操作的数据结构 ,即查找基于的数据结构。

    • 线性表:适用于静态查找,主要采用顺序查找技术、折半查找技术。

    • 树表:适用于动态查找,主要采用二叉排序树的查找技术。

    • 散列表:静态查找和动态查找均适用,主要采用散列技术。

    • 平均查找长度:将查找算法进行的关键码的比较次数的数学期望值定义为平均查找长度。或者说是自1到n求和 查找第 i 个记录的概率*查找第 i 个记录所需的关键码的比较次数

    线性表查找

    顺序查找

    int SeqSearch1(int r[ ], int n, int k){	// 数组r[1] ~ r[n]存放查找集合   
         int i=n;
         while (i>0 && r[i]!=k)
             i--;
         return i;
    }
    

    改进后的顺序查找

    int SeqSearch2(int r[ ], int n, int k) {	//数组r[1] ~ r[n]存放查找集合   
        r[0]=k;		// 即让0号元素一定会被查到,从而避免了判断是否越界 
        i=n;
        while (r[i]!=k)
            i --;
        return i;
    }
    

    在计算ASL的时候,有个奇葩的规定(之后待考证),就是假设成功失败的可能都是1/2

    优点

    • 使用面广,算法简单
    • 对存储没有任何要求,顺序和链式均可
    • 对记录有序性也无要求,无论记录是否按照关键码有序

    缺点

    • 平均查找长度大,查找效率低

    折半查找

    条件

    • 线性表中的记录必须按关键码有序
    • 必须采用顺序存储

    基本思想

    在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键码相等,则查找成功;若给定值小于中间记录的关键码,则在中间记录的左半区继续查找;若给定值大于中间记录的关键码,则在中间记录的右半区继续查找。不断重复上述过程,直到查找成功,或所查找的区域无记录,查找失败。

    实现

    // 非递归实现
    int BinSearch1(int r[ ], int n, int k){	//数组r[1] ~ r[n]存放查找集合 
        low=1;
        high=n;
        while (low<=high) {		// 此处一定要记住终止条件
            mid=(low+high)/2;            
            if (k<r[mid])  high=mid-1;
            else if (k>r[mid])  low=mid+1; 
            else return mid;
        }
        return 0;	// 其实是失败了
    }
    
    // 递归实现
    int BinSearch2(int r[ ], int low, int high, int k){	//数组r[1] ~ r[n]存放查找集合    
        if (low>high) return 0;  // 终止条件
        else {
            mid=(low+high)/2;
            if (k<r[mid])	// 其实就是将前文的赋值改成了递归 
                return BinSearch2(r, low, mid-1, k);
            else  if (k>r[mid]) 
                return BinSearch2(r, mid+1, high, k); 
            else return mid;
         }
     }
    

    折半查找判定树

    定义

    折半查找的过程可以用二叉树来描述,树中的每个结点对应有序表中的一个记录,结点的值为该记录在表中的位置。通常称这个描述折半查找过程的二叉树为折半查找判定树,简称判定树。

    构造
    • 当n=0时,折半查找判定树为空;

    • 当n>0时,折半查找判定树的根结点是有序表中序号为mid=(n+1)/2的记录,根结点的左子树是与有序表r[1] ~ r[mid-1]相对应的折半查找判定树,根结点的右子树是与r[mid+1] ~ r[n]相对应的折半查找判定树。

    性能分析
    • 具有n个结点的折半查找判定树的深度为 [log2n]+1 ([]表示向下取整)(n个节点的判定树和n个节点的完全二叉树深度相同)
    • 查找成功:在表中查找任一记录的过程,即是折半查找判定树中从根结点到该记录结点的路径,和给定值的比较次数等于该记录结点在树中的层数。
    • 查找不成功:查找失败的过程就是走了一条从根结点到外部结点的路径,和给定值进行的关键码的比较次数等于该路径上内部结点的个数,即使是失败了,其关键字比较个数最多也不会超过 [log2n]+1 ([]表示向下取整)

    ASL=n+1nlog2(n+1)1 ASL = \frac{n+1}{n}log_2(n+1)-1

    当n较大时,可近似为
    log2(n+1)1 log_2(n+1)-1

    索引顺序查找

    索引顺序查找即以索引顺序表表示静态查找表,又叫分块查找。

    查找过程

    1. 由索引确定记录所在区间;(由于区间的索引是有序的,所以此处可以折半查找)

    2. 在顺序表的某个区间内进行查找。

    要求

    • 关键字项是子表中的最大关键字

    • 指针项是子表中首记录的地址

    • 分块有序,后面子表中的所有关键字均大于前面子表的最大关键字。

    • 可以将长度为n的表均匀分成b块,每块含有s个记录,又假定表中每个记录的查找概率相等,则每块查找的概率为1/b,块中每个记录的查找概率为1/s.

      若两者均采取顺序查找,则有如下公式,其在s=√n的时候取最小值√n+1
      ASL=12(ns+s)+1 ASL = \frac{1}{2}(\frac{n}{s}+s)+1
      若在索引中采取折半查找,在子表中使用顺序查找
      ASL=log2(ns+1)+s2 ASL = log_2(\frac{n}{s}+1)+\frac{s}{2}

    树表查找

    动态查找表的特点

    • 表结构本身在查找过程中动态生成
    • 关键字查找成功则返回
    • 否则插入关键字

    二叉排序树

    性质

    • 或者是空的二叉树

    • 或者是具有一下性质的二叉树

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

      2. 若它的右子树不空,则右子树上所有结点的值均大于根结点的值;

      3. 它的左右子树也都是二叉排序树

    即二叉排序树采用递归方法定义,中序遍历二叉排序树可以得到一个按关键码有序的序列

    typedef struct BiTNode { // 结点结构
        struct BiTNode  *lchild, *rchild; // 左右孩子指针
    } BiTNode, *BiTree;
    

    查找

    在二叉排序树中查找给定值k的过程是:

    1. 若root是空树,则查找失败;
    2. k=root->data,则查找成功;否则进行后续判断
    3. k<root->data,则在root的左子树上查找;否则
    4. 在root的右子树上查找。

    上述过程一直持续到k被找到或者待查找的子树为空,如果待查找的子树为空,则查找失败。

    二叉排序树的查找效率在于只需查找两个子树之一

    路径

    在查找过程中,生成了一条查找路径

    • 查找成功:从根结点出发,沿着左分支或右分支逐层向下直至关键字等于给定值的结点。
    • 查找失败:从根结点出发,沿着左分支或右分支逐层向下直至指针指向空树为止。
    Status SearchBST(BiTree T,KeyType key,BiTree f,BiTree &p){	// 二叉搜索树
        if(!T){	// 如果是空树,直接返回FALSE,并以查找路径上最后一个访问的节点赋值给p
            p=f;
            return FALSE;
        }else if EQ(key,T->data.key){	// 如果找到了,就把其位置赋值给p
            p=T;
            return True;
        }else if LT(key,T->data.key){	//	如果查找值比当前值小,则递归搜索左子树
            return SearchBST(T->lchild,key,T,p);
        }else 
            return SearchBST(T->rchild,key,T,p);	// 否则搜索右子树
    }
    

    插入

    根据动态查找表的定义,“插入”操作在查找不成功时才进行

    若二叉排序树为空树,则新插入的结点为新的根结点;否则,新插入的结点必为一个新的叶子结点,其插入位置由查找过程得到。

    Status InsertBST(BiTree &T,ElemType e){		// 插入节点
        if(!SearchBST(T,e.key,NULL,p)){		// 未找到插入位置
            s=(BiTree)malloc(sizeof(BiTNode));		
            s->data=e;
            s->lchild=s->rchild=NULL;
            if(!p)
                T=s;
            else if LT(e.key,p->data.key)	// 左子树是插入位置
                p->lchild=s;
            else 
                p->rchild=s;	// 右子树是插入位置
            return TRUE;
        }
        else	// 已经有关键字相同的节点,不能再插入 
            return FALSE;
    }
    

    构造

    // 可以认为root是一个全局的空指针
    BiSortTree(int r[ ], int n){	// 从数组中读入,构建     
        for (i=0; i<n; i++){
           s=new BiNode<int>; 
           s->data=r[i];
           s->lchild=s->rchild=NULL;
           InsertBST(root, s);		// 不断插入
        }
    }
    
    • 一个无序序列可以通过构造一棵二叉排序树而变成一个有序序列;
    • 每次插入的新结点都是二叉排序树上新的叶子结点;
    • 找到插入位置后,不必移动其它结点,仅需修改某个结点的指针;
    • 在左子树/右子树的查找过程与在整棵树上查找过程相同;
    • 新插入的结点没有破坏原有结点之间的关系。

    删除

    三种情况
    1. 删除叶子节点
    2. 删除的节点只有一棵子树
    3. 删除的节点左右子树都有
    删除叶子节点

    将双亲结点中相应指针域的值改为空即可,不会影响其他树的其他部分;

    删除有一棵子树的节点
    • 若待删除节点p只有左子树,则让p的双亲节点重接p的左子树即可
    • 若待删除节点p只有右子树,则让p的双亲节点重接p的右子树即可
    删除有两棵子树的节点

    先寻找左子树的最小值(右子树最大值也可), 其实这整个函数采用递归的方式容易解决,因为将此待删除节点与其左子树最大的节点交换后,其左子树的最大节点就一定只有一颗子树。

    BinTree Delete(ElementType X,BinTree BST){
        Position Tmp;
        if(!BST)	// 未找到节点
            printf("未找到节点\n");
        else if(X < BST->Data){		// 向左子树中删除
            BST->Left = Delete(X,BST->Left);
        }else if(X > BST->Data){	// 向右子树中删除
            BST->Right = Delete(X,BST->Right);
        }else {		// 找到了要删除的节点,即 X == BST->Data 
            if(BST->Left && BST->Right){	// 左右子树都存在
                Tmp = FindMin(BST->Right);
                BST->Data = Tmp->Data;
                BST->Right = Delete(BST->Data,BST->Right);
            }else {		// 仅存在一个子树或者都不存在
                Tmp = BST;
                if(!BST->Left)	 // 如果不存在左子树,则向上返回其新的根节点,即其右子树的根节点
                    BST = BST->Right;
                else if(!BST->Right) // 如果不存在右子树,则向上返回其新的根节点,即其左子树的根节点
                    BST = BST->Left;
                free(Tmp);
            } 
        }
        return BST;
    }
    

    性能分析

    二叉排序树的性能取决于二叉排序树的形状,在O(log2n)和O(n)之间,O(n)即退化成斜树的情况。

    平衡二叉树

    定义

    • 平衡二叉树:或者是一棵空的二叉排序树,或者是具有下列性质的二叉排序树:
      1. 根结点的左子树和右子树的深度最多相差1
      2. 根结点的左子树和右子树也都是平衡二叉树
    • 平衡因子:结点的平衡因子是该结点的左子树的深度与右子树的深度之差。 在平衡树中,节点的平衡因子可以是1,0,-1.
    • 最小不平衡子树:在平衡二叉树的构造过程中,以距离插入结点最近的、且平衡因子的绝对值大于1的结点为根的子树。

    基本思想

    在构造二叉排序树的过程中,每插入一个结点时,首先检查是否因插入而破坏了树的平衡性,若是,则找出最小不平衡子树,在保持二叉排序树特性的前提下,调整最小不平衡子树中各结点之间的链接关系,进行相应的旋转,使之成为新的平衡子树。

    调整

    设结点A为最小不平衡子树的根结点,对该子树进行平衡调整归纳起来有以下四种情况:

    1. LL型 左子树的左子树沉
    2. RR型  右子树的右子树沉
    3. LR型  左子树的右子树沉
    4. RL型  右子树的左子树沉

    经过手动模拟,发现其含义指的是L(左子树)L(的左子树)被插入了,L(左子树)R(的右子树)被插入了,好吧其实通过模拟…根本没有必要记住特别复杂的公式和条件

    对于LL型和RR型背下来,然后对于LR和RL型,则递归求解这个问题,从小的开始,一层一层向上化,大体思路就是右子树沉就左旋,左子树沉就右旋,这个问题日后再深究

    性能

    时间复杂度 O(logn)

    B-树

    定义&&查找

    1. 树中每个节点至多有m棵子树

    2. 若根节点不是叶子节点,则至少有两棵子树

    3. 除根之外的所有非终端节点至少有 [m/2] (向上取整)棵子树

    4. 所有的非终端节点中包含以下信息数据

      子树个数个指针,和子树个数-1个关键字

    5. 所有的叶子节点都出现在同一层次上,并且不带信息(可以看作是外部节点活着查找失败的节点,实际上这些节点不存在,只想这些节点的指针为空.)

    查找过程和二叉排序树相似,即通过关键字的对比查询到应该往哪个子树继续查找,

    时间所限,不能继续深究其插入和删除了,后续补充

    散列表

    基本思想

    在记录的存储地址和它的关键码之间建立一个确定的对应关系。这样,不经过比较,一次读取就能得到所查元素的查找方法。

    • 散列表:采用散列技术将记录存储在一块连续的存储空间中,这块连续的存储空间称为散列表。

    • 散列函数:将关键码映射为散列表中适当存储位置的函数。

    • 散列地址:由散列函数所得的存储位置址 。

    • 散列主要是面向查找的存储结构。

    • 散列两个关键问题:

      1. 散列函数的设计。如何设计一个简单均匀存储利用率高的散列函数。

      2. 冲突的处理。如何采取合适的处理冲突方法来解决冲突。

    • 冲突:对于两个不同关键码ki≠kj,有H(ki)=H(kj),即两个不同的记录需要存放在同一个存储位置,ki和kj相对于H称做同义词。

    • 散列函数设计原则

      1. 计算简单。散列函数不应该有很大的计算量,否则会降低查找效率。
      2. 函数值即散列地址分布均匀。函数值要尽量均匀散布在地址空间,这样才能保证存储空间的有效利用并减少冲突。

    散列函数

    ##### 直接定址法

    H(key)=akey+bab H(key) = a*key + b (a,b为常数)

        比如取 a= 1/10 , b=0
    

    适用于 事先知道关键码,关键码集合不是很大且连续性较好。

    数字分析法

    根据关键码在各个位上的分布情况,选取分布比较均匀的若干位组成散列地址。

    适用于: 能预先估计出全部关键码的每一位上各种数字出现的频度,不同的关键码集合需要重新分析。

    ##### 平方取中法

    对关键码平方后,按散列表大小,取中间的若干位作为散列地址(平方后截取)。

    适用于: 事先不知道关键码的分布且关键码的位数不是很大。

    折叠法

    将关键码从左到右分割成位数相等的几部分,将这几部分叠加求和,取后几位作为散列地址。

    适用于: 关键码位数很多,事先不知道关键码的分布。

    除留余数法

    H(key)= key mod p

    一般情况下,选p为小于或等于表长(最好接近表长)的最小素数不包含小于20质因子的合数

    适用情况:除留余数法是一种最简单、也是最常用的构造散列函数的方法,并且不要求事先知道关键码的分布.

    随机数法

    哈希函数: H(key) = Random(key)

    其中,Random 为伪随机函数,要保证函数值是在0~m-1之间。

    通常,此方法用于对长度不等的关键字构造哈希函数。

    总结

    采用何种函数取决于建表的关键字集合的情况(包括关键字的范围和形态),考虑因素包括

    1. 计算哈希函数所需时间
    2. 关键字长度大小
    3. 哈希表的大小
    4. 关键字的分布情况
    5. 记录的查找频率

    总的原则是使得产生冲突的可能性降到尽可能地小

    冲突处理

    开放定址法

    由关键码得到的散列地址一旦产生了冲突,就去寻找下一个空的散列地址,并将记录存入。用开放定址发处理冲突得到的散列表叫闭散列表

    线性探测法

    Hi=(H(key)di)Modmdi=12m1 H_i=(H(key)+d_i) Mod m (d_i=1,2,…,m-1)

    线性探测能保证只要哈希表不满,就一定能找到插入的位置

    堆积:在处理冲突的过程中出现的非同义词之间对同一个散列地址争夺的现象。可以简单理解为两个词虽然不是同义词,但是在第一次选址失败时,为了处理冲突而又在另一个地方聚集的现象.

    int HashSearch1(int ht[ ], int m, int k) {	// 这是查找还是搜索?
        j=H(k);  
        if (ht[j]==k) return j;   //没有发生冲突,比较一次查找成功
        i=(j+1) % m;
        while (ht[i]!=Empty && i!=j)  {
            if (ht[i]==k) return i;  //发生冲突,比较若干次查找成功
            i=(i+1) % m;    //向后探测一个位置
        }
        if (i==j) throw "溢出";	// 遍历了整个数组,也没有位置可以存放
        else ht[i]=k;   //查找不成功时插入
    }
    
    二次探测法

    当发生冲突时,寻找下一个散列地址的公式为:Hi=(H(key)+di)% m

    di取值均为平方数,1²,-1², 2², -2²…q²,-q²( q<=m/2)

    但是,二次探测再散列只有在哈希表长m为形如4*j+3的形式的质数时才有可能做到 只要未满,就可插入.

    随机探测法

    当发生冲突时,下一个散列地址的位移量是一个随机数列,即寻找下一个散列地址的公式为: Hi=(H(key)+di)% m(di是一个随机数列i=1,2,……,m-1)

    计算机中产生随机数的方法通常采用线性同余法

    • a0 = d
    • an=(b*an-1 + c )mod m (n>0)

    其中,d称为随机种子。当b、c和m的值确定后,给定一个随机种子,产生确定的随机数序列。

    链地址法

    基本思想

    将所有散列地址相同的记录,即所有同义词的记录存储在一个单链表中(称为同义词子表),在散列表中存储的是所有同义词子表的头指针。

    用链式处理冲突构造的散列表叫做开散列表

    设n个记录存储在长度为m的散列表中,则同义词子表的平均长度为n /m。

    算法
    Node<int> *HashSearch2(Node<int> *ht[ ], int m, int k){     
        j=H(k);
        p=ht[j];
        while (p && p->data!=k)
            p=p->next;
        if (p->data= =k) return p;	// 找到了k,则返回其地址
        else { 	// 没找到k,则将其插入到链表中(插表头简单一些)
            q=new Node<int>; q->data=k;
            q->next= ht[j];
            ht[j]=q;  
        }
    }
    

    公共溢出区

    基本思想

    散列表包含基本表和溢出表两部分(通常溢出表和基本表的大小相同),将发生冲突的记录存储在溢出表中。查找时,对给定值通过散列函数计算散列地址,先与基本表的相应单元进行比较,若相等,则查找成功;否则,再到溢出表中进行顺序查找

    性能分析

    在查找过程中,关键码的比较次数取决于产生冲突的概率。而影响冲突产生的因素有:

    1. 散列函数是否均匀

    2. 处理冲突的方法

    3. 散列表的装载因子

      α=表中填入的记录数/表的长度

    哈希表的查找效率只同装填因子有关,而同哈希表中的数据的个数无关

    几种不同处理冲突的查找方式的平均查找长度

    堆积现象 结构开销 插入删除效率 查找效率 估计容量
    开散列表 不需要
    闭散列表 需要
    展开全文
  • 大话数据结构-程杰

    2014-07-13 23:45:52
    双向链表既然是比单链表多了如可以反向遍历查找等的数据结构,那么也就需要付出一些小代价。 3.15 总结回顾 84 3.16 结尾语 85 如果你觉得上学读书是受罪,假设你可以活到80岁,其实你最多也就吃了20年苦。用...
  • 6.2.1 结点分类 152 6.2.2 结点间关系 152 6.2.3 树其他相关概念 153 6.3 树抽象数据类型 154 6.4 树存储结构 155 6.4.1 双亲表示 155 6.4.2 孩子表示 158 6.4.3 孩子兄弟表示 162 6.5 二叉树定义 ...
  • 因为美国黑夜就是中国白天,利用互联网,他员工白天上班就可以监控到美国仓库夜间实际情况,如果发生了像火灾、偷盗这样突发事件,及时电话到美国当地相关人员处理 7.4.1邻接矩阵 224 7.4.2邻接表 228 ...
  • 2.2.8 沃尔什和哈尔变换的优点和缺点各是什么? 69 2.2.9 什么是哈尔小波? 70 2.3 离散傅里叶变换 71 2.3.1 傅里叶变换的离散形式(DFT )是怎样的? 71 B2.6 离散傅里叶反变换是什么样的? 72 2.3.2 如何能...
  • 答:在实际测量中,存在有一定关系的一组测量数据,该组数据间具有一定的函数关系,对于这类数据的表示方法有:列表法,图示法和经验公式法。 1.列表法列表法是将实验所获得的数据用表格的形式进行排列的数据处理...
  • <p><strong>数据结构是计算机存储、组织数据的方式。数据结构是指相互直接存在一种或多种特殊关系的数据元素的集合。通常情况下,精心选择数据结构可以带来更高的运行或者存储效率。作为一名程序猿,更...
  • 哈希表的原理 哈希表(散列表),是根据关键码值...哈希表的优点处理数据的复杂度平均都是O(1),效率很高。 哈希函数的构造 除余法 选择适当的正整数p,令h(k)=k mod p。在这里p取较大素数比较好。此容易实现,是最
  • 缺点: 所有信息都要采取字符串批凑方式来实现,比如需要一个列表,就需要拼凑字符串。问题是开发周期长,可扩展性非常差,而且不易维护,难修改。 2. 截取Control.Render()中HtmlTextWriter的数据优点: ...
  • JSP具有以下的优点: 1、将业务层与表示层分离:使用JSP技术,网络开发人员可充分使用HTML来设计页面显示部分(如字体颜色等),并使用JSP指令或者JAVA程序片段来生成网页上的动态内容; 2、能够跨平台:JSP支持绝...
  • ASP.NET网页代码模型及生命周期

    热门讨论 2009-07-28 14:22:11
    ASP.NET中还提供了控件状态属性作为在服务器往返过程中存储自定义控件中的数据的方法。在页面控件中,如果有多个自定义控件使用多个不同的控件来显示不同的数据结构,为了让这些页面控件能够在在页面上协调的工作,...
  • 14.8.2 使用后置条件的优点 14.9 后置条件的核心:舞台和帷幕 14.10 讨论--enterItem的后置条件 14.10.1 实例的创建和销毁 14 10.2 属性的修改 14.10.3 关联的形成和破裂 14.11 后置条件应该详细到...
  • aspx页面转换为html

    2010-08-27 17:56:00
     模版 该方法历史悠久,具体处理流程为采用一个html模版,将其中关键字替换为我们希望信息。 优点: 缺点: 所有信息都要采取字符串批凑方式来实现,比如需要一个列表,就需要拼凑
  • 13.2.4 面向数据集代码的优点 207 13.3 解释含糊的说明 207 13.3.1 回归到DDL 209 13.3.2 修改问题说明 211 第14章 使用过程及函数调用 213 14.1 清除字符串中的空格 213 14.1.1 过程式解决方案#1 213 ...
  • 15.1.2 使用DLL的优点 15.2 编写动态链接库(DLL) 15.2.1 创建一般的DLL 15.2.2 创建带有VCL控件的DLL 15.3 调用动态链接库(DLL) 15.3.1 静态加载DLL 15.3.2 动态加载DLL 15.4 创建和利用资源DLL 15.4.1 关于资源...
  • 6.10 ASM元数据的备份与恢复 326 6.11 ASM磁盘组的动态扩展能力 329 6.12 快速镜像同步(Fast Mirror Resync) 331 6.13 ASM的透明多版本支持 333 6.14 ASM的命令行管理工具asmcmd 334 6.15 通过EM管理ASM...
  • ASP.NET精品课程+源代码

    千次下载 热门讨论 2009-01-05 20:15:51
    在案例讲解中,可只讲解一种方法,也就是以程序的手段来实现对文本及数据的读写操作以及ASP.NET对文件的操作,另外的方法可以让学生自主学习。 当整个案例的基本功能实现差不多了,就可以对案例进行扩充和扩展,例如...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    8.4 异常处理语句 .95 8.5 小 结 .100 第三部分 面向对象 C#.101 第九章 面向对象程序设计 .101 9.1 面向对象基本概念.101 9.2 对象模型技术 .103 9.3 面向对象分析 .105 9.4 面向对象设计...
  • C#微软培训资料

    2014-01-22 14:10:17
    8.4 异常处理语句 .95 8.5 小 结 .100 第三部分 面向对象 C#.101 第九章 面向对象程序设计 .101 9.1 面向对象基本概念.101 9.2 对象模型技术 .103 9.3 面向对象分析 .105 9.4 面向对象设计...
  • 要求设计一个DNS的Cache结构,要求能够满足每秒5000以上的查询,满足IP数据的快速插入,查询的速度要快。(题目还给出了一系列的数据,比如:站点数总共为5000万,IP地址有1000万,等等) 3.5.1 找出给定字符串对应...
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    监听删除操作,保证数据的安全。 场景 监听删除操作 删除操作一旦执行,立即被监听器捕获到,进而在执行 删除操作前执行自定义的函数体,即判断实体有无undeletable标签,有则中断删除操作,无则正常删除。 用例图...
  • 会计理论考试题

    2012-03-07 21:04:40
    6.为了以最佳方式、最少重复,为多种应用服务,把数据集中起来以一定组织方式存在计算机外存储器中,就构成 __D___ 。 A、FoxBASE B、DOS C、数据库管理系统 D、数据库 7.用紧急启动盘(ESD)启动计算机后,屏幕...

空空如也

空空如也

1 2 3
收藏数 44
精华内容 17
关键字:

列表法处理数据的优点