首页 > 其他分享 >66.《ds---查找》

66.《ds---查找》

时间:2024-10-26 16:58:23浏览次数:3  
标签:折半 结点 --- 关键字 查找 66 长度 散列 ds

one 查找概念 线性结构

大纲总体上就是一个基本概念和五种查找方法

查找表分为静态查找表和动态查找表
-静态查找表 只涉及查找操作(顺序查找 折半查找 散列查找)
-动态查找表 动态插入或删除(二叉排序树查找 散列查找)

对于关键概念 关键字和平均查找长度(假设总左往右一一查询)
例如找关键字为4 需要比较 10 2 4 三次
image

顺序查找【线性查找】(顺序表和链表)

一般线性表的顺序查找(无序)
image
有序线性表的顺序查找
image

随后再详细写解平均查找长度的算法
还有注意前提是表中每个元素的查找概率都一样

看一个查找概率不同的题目
对长度为3的顺序表进行查找 若查找第一个元素的概率为1/2 查找第二个元素的概率为1/3 第三个元素概率1/6 则查找任意一个元素的平均查找长度为多少
11/2+21/3+3*1/6=5/3

折半查找【二分查找】(有序顺序表)

如果C编程或Java编程都会涉及到折半查找 效率高 时间复杂度O(log2为底n)
image
可以观察到找中间结点的时候 采取的是向下取整 注意随后的都要采取向下取整

- 查找成功的查找长度为从根节点到目的结点的路径上的结点数
- 查找失败的查找长度为从根节点到对应失败结点的父结点的路径上的结点数
- 特性每个结点值均大于左子结点值其均小于右子节点值 
- 折半查找的判别树是一颗平衡二叉树(左子树小于右子树 左右子树高度之差不超过1)
- 判别树高为=log2为底(n+1)向上取整

下面几点好理解 最重要的就是前两条
具有12个关键字的有序表中 每个关键字的查找概率相同 折半查找算法查找成功的平均查找长度 折半查找失败的平均查找长度
最直接易理解的方法就是画出该图
image

easy题 有序表{b,c,d,e,f,g,q,r,s,t}二分查找关键字b 进行比较的关键字依次是
image
还有一个坑 简单上来就框框一顿做 首先给你的元素并非有序排列
对于折半查找必须是有序顺序表
所有你要先有序排列后再进行对应查找
image

已知一个长度为16的顺序表 其元素按关键字有序排列 采用折半查找法查找一个不存在的元素 比较的次数至少多少次 至多多少次
image

分块查找【索引顺序查找】
- 块内元素无序 块间元素有序
- 索引表中的每个元素含有各块的最大关键字和各块中的第一个元素的地址
- 查找步骤两步 一索引表中确定待查记录所在的块 二块内顺序查找
- 当s=√n 平均查找长度最小值√n+1

image

基本是一些基本概念的考察简单看道题
为了提高查找效率 对有65025个元素的有序顺序表建立索引顺序结构 最好情况下查找到表中已有元素最多需要执行多少次关键字比较
image


two 树形结构(二叉排序树)

二叉排序树目的是为了提高查找插入删除关键字的速度

2020统考真题 给定关键字输入序列中不能生成该二叉排序树的是
image

因为我这考试不注重考察过多所以至此打住


three 散列表(哈希表)
- 散列表 关键字和存储地址之间的一种直接映射关系
- 散列函数 一个把查找表中的关键字映射成该关键字对应的地址的函数
- 冲突 不同关键字映射到同一地址
- 同义词 发生冲突的不同关键字

散列函数的构造方法

  1. 直接定址法
  2. 除留余数法
  3. 数字分析法
  4. 平方取中法

处理冲突的方法

  1. 开放定址法
  • 线性探测法(线性探查 再散列)
  • 平方探测法(二次探测法)
  • 双散列法
  • 伪随机序列法
  1. 拉链法
    不一一介绍而是用考题来看重点的方法

假定K个关键字互为同义词 线性探测法把K个关键字填入散列表 至少要进行多少次探测
都有冲突 只有第一个放进去后依次往后 K(k+1)/2

散列表长m=14 散列函数H(key)=key%11 表中四个结点H(15)=4 H(38)=5 H(61)=6 H(84)=7 采用线性探测法处理冲突 关键字49的结点地址是
image

现长度17 初始为空的散列表 散列函数H(key)=key%17 平方探测法解决冲突 关键字序列 6 22 7 26 9 23依次插入 则关键字23存放在散列表中的位置是
image

image
image

2019统考真题 长度11初始为空的散列表 散列函数H(key)=key%7 采用线性探测再散列法解决冲突 将关键字序列 87 40 30 6 11 22 98 20依次插入 查找失败的平均长度
image

2023统考真题 长度为5初始为空的散列表 散列函数H(k)=(k+4)%5 线性探查再散列法解决冲突 关键字序列 2022 12 25依次插入 删除关键字25 查找失败的平均查找长度为
image

关于散列表查找效率 装填因子参考蚊香一眼
image

over!!!

标签:折半,结点,---,关键字,查找,66,长度,散列,ds
From: https://www.cnblogs.com/gaodiyuanjin/p/18504021

相关文章

  • Lift-Splat-Shoot 复现
    我理解的复现,就是把代码跑通,完整训练一遍,然后测试,争取达到论文里报告的效果。虽然大部分工作复现出来可能都到不了论文里的性能,比较玄学。概述Lift-Splat-Shoot(LSS)是BEV方法的开山之作,作者来自NVIDIA。该方法是一个纯视觉的感知方法,用来做BEV分割任务的,但是其架构和思......
  • 答题判题程序1-3总结
    答题判题程序题目集1-3-总结性博客答题判题程序一一、前言在“答题判题程序-1”中,我们主要实现了一个小型答题判题系统,用于模拟自动化的答题和判分过程。该系统涵盖了输入题目信息、接收用户答题信息以及根据标准答案进行判分的功能。该题目集主要考查以下几个方面的编程能力:......
  • 自制游戏-人生
    //0=hp//1=go//2=fang               //bing[4]={1000,300,300,10,100};//3=mony//4=xiu#include<stdio.h>#include<ctime>#include<time.h>//suiji#include<windows.h>#include<iostream>#include<stdlib.h>......
  • gdal部署及java调用详细过程(linux版本-ubuntu)
    建议gdal用3.5.3前的版本,因为目前网上大部分文章都是适用这个版本之前的编译方法一、gdal部署1)安装gcc通过系统包管理器安装sudoaptinstallgccgcc--version2)安装g++通过系统包管理器安装sudoaptinstallg++g++--version3)安装Ant通过系统包管理器安装sudoapt-g......
  • KBJ2510-ASEMI整流桥KBJ2510参数、封装、尺寸
    编辑:llKBJ2510-ASEMI整流桥KBJ2510参数、封装、尺寸型号:KBJ2510品牌:ASEMI封装:KBJ-4批号:2024+现货:50000+最大重复峰值反向电压:1000V最大正向平均整流电流(Vdss):25A功率(Pd):大功率芯片个数:4引脚数量:4安装方式:插件类型:插件桥堆、整流桥正向浪涌电流IFSM:350A正向电压:1.......
  • Vue2 - 完美解决html2canvas截图不全问题,截屏导出的图片显示不全只有一部分或缺一块,vu
    前言该解决方案任意前端技术栈通用,不仅限Vue。在vue2(手机H5移动端/微信公众号H5页面)项目开发中,使用html2canvas截屏时发现有一部分未截取到少了一块截图不完整,导出保存图片时发现截图只有一半显示不全,另外还有一个问题就是截图时截取当前可视区域的问题(出现滚动条只保......
  • Linux笔记---Makefile的简单用法
    1.什么是MakefileMakefile是一种用于自动化构建和管理项目的工具,特别是在软件开发中非常常见。它包含了一系列规则(rules)和指令,描述了如何编译和链接源代码文件,以及生成最终的可执行文件或库文件。简单来说,在系统中存在一个叫做make的命令,该命令被使用之后,会在当前目录下......
  • 华为OD机试真题 - 反射计数
    华为OD机试真题-反射计数介绍反射计数问题是华为OD机试中的一道经典题目,主要考察考生对二维矩阵的操作能力和算法设计能力。题目通常要求在一个包含0和1的二维矩阵中,模拟一个物体的运动,并计算在特定时间内物体经过1的次数。原理详解反射计数的基本原理包括以下几个方面:矩阵......
  • 【黑马python:函数】51-61
    本节目录一、前言二、函数的基础定义语法1.定义形式2.练习案例:查核酸三、函数的传入参数1.语法解析2.案例升级:核酸四、函数的返回值1.语法格式2.返回值的None类型五、函数的说明文档六、函数的嵌套调用七、变量在函数中的作用域1.局部变量与全局变量2.global关键字八......
  • Chipanalog川土微集成有源电感的Homebus收发器芯片CA-IF42088
    CA-IF42088是一款符合家庭总线标准(HBS)的全集成收发机,其电源和数据共用一对双绞线。CA-IF42088可为总线供电型应用提供最高200kbps的数据传输。CA-IF42088内部集成了有源电感,无需分立交流阻断电感。CA-IF42088集成了片内有源电感从而实现了数据和电源同时传输的功能,无需分立交流......