2023.12.10查找,线性探测法

news2024/11/16 17:54:23

二叉树的重构

集合实现对图的dfs,bfs复写

插入排序

霍夫曼树,霍夫曼编码

查找成功,查找失败的期望值计算

9.给定散列表大小为11,散列函数为H(Key)=Key%11。按照线性探测冲突解决策略连续插入散列值相同的4个元素。问:此时该散列表的平均不成功查找次数是多少?
A.1
B.4/11
C.21/11
D.不确定

答案:C

分析:
区别概念平均成功查找次数和平均不成功查找次数。
平均成功查找次数=每个关键词比较次数之和÷关键词的个数
平均不成功查找次数=每个位置不成功时的比较次数之和÷表长(所谓每个位置不成功时的比较次数就是在除余位置内,每个位置到第一个为空的比较次数,比如此题表长为11,散列函数为Key%11,除余的是11,那么除余位置就是0—10;如果表长为15,但散列函数为Key%13,那么除余位置就是0—12)
明确概念后做题:
连续插入散列值相同的4个元素,我们就假设它的散列值都为0,那么插入后的位置:

其中位置0到第一个为空的位置4的比较次数为5,其余的位置以此类推。
平均不成功查找次数=(5+4+3+2+1+1+1+1+1+1+1)÷ 11 = 21/11
故选C

线性探测法

#include <bits/stdc++.h>
#define LL long long
using namespace std;
 
const int N=10100;
int n, m , idx;
int p[N];
bool st[N],fg=true;
 
 
int main() {
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        cin >> idx;
        int x = idx % m;
        while (st[x] && p[x] != idx) { x++; if (x == m)x = 0; }
        st[x] = true;
        p[x] = idx;
        if (fg) {
            fg = false;
            cout << x;
        }
        else cout << " " << x;
    }
    return 0;
}
#include <bits/stdc++.h>
#define LL long long
using namespace std;
 
const int N=10100;
int n, m ;

 
 
int main() {
    cin >> n >> m;
    int p[N];
bool st[N],fg=true;
    for (int i = 1; i <= n; i++) {
        int num;
        cin >> num;
        int index = num % m;
        while (st[index] && p[index] != num) { index++; if (index == m)index = 0; }
        st[index] = true;
        p[index] = num;
        if (fg) {
            fg = false;
            cout << index;
        }
        else cout << " " << index;
    }
    return 0;
}

这是一个使用线性探测法解决冲突的哈希表实现的代码。代码中的主要逻辑如下:

  1. 从输入中读取n和m,分别表示输入元素的数量和哈希表的大小。

  2. 创建一个数组p和一个布尔数组st,分别用来存储哈希表的元素和表示每个位置是否被占用的状态。

  3. 循环n次,读取每个元素的值,并计算其哈希值x。

  4. 如果哈希表位置x已经被占用且不等于当前元素的值,使用线性探测法找到下一个可用位置,即向后遍历哈希表,直到找到一个未被占用的位置。

  5. 标记位置x为已占用,将当前元素的值存储在位置x上。

  6. 输出当前元素的哈希值x。

  7. 循环结束后,输出每个元素对应的哈希值。

这段代码的功能是将n个输入的元素通过哈希函数映射到大小为m的哈希表中,并输出每个元素的哈希值。使用线性探测法可以处理哈希冲突,即当两个元素映射到同一个位置时,通过线性探测法找到下一个可用位置。

#include<iostream>
using namespace std;
int main(){
    int n,p;
    cin>>n>>p;
    int arr[p];
    bool st[p];
    for(int i=1;i<=n;i++){
        int num;
        cin>>num;
        int index=num%p;
        while(st[index]&&arr[index]!=num){
           index=(index+1)%p;
        }
        st[index]=true;
        arr[index]=num;
        cout<<num%p;
        if(i!=n)cout<<" ";
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1376678.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习_8、支持向量机

支持向量机解决鸢尾花数据集分类问题 # 导入鸢尾花数据集 from sklearn.datasets import load_iris import pandas as pd import numpy as npiris_data load_iris() Xiris_data.data yiris_data.target# 划分训练集与测试集 from sklearn.model_selection import train_test_…

CES 2024:芯片厂商集体奔向AI,汽车芯片成为新赛道

科技云报道原创。 一年一度的CES又来了&#xff01; 美国当地时间1月9日&#xff0c;2024年国际消费类电子产品展览会&#xff08;CES&#xff09;如期举行。 作为全球最盛大的科技盛会&#xff0c;全球多个行业的顶尖企业都会参加CES。今年&#xff0c;展商们已经不约而同将…

公众号突破2个限制技巧怎么操作?

一般可以申请多少个公众号&#xff1f;目前企业主体只能申请2个公众号&#xff0c;这也意味着想做矩阵公众号的难度提升了。有些公司靠着诸多不同分工的公众号形成一个个矩阵&#xff0c;获取不同领域的粉丝。比如&#xff0c;目前主体为xx旗下公众号&#xff0c;共有30个&…

《YOLO算法:基础+进阶+改进》报错解决 专栏答疑

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。《YOLO算法&#xff1a;基础进阶改进》专栏上线后&#xff0c;部分同学在学习过程中提出了一些问题&#xff0c;笔者相信这些问题其他同学也有可能遇到。为了让大家可以更好地学习本专栏内容&#xff0c;笔者特意推出了该篇…

Docker 的工作原理及安装步骤【云原生】

文章目录 1. Docker 的工作原理2. Docker 与虚拟机3. Docker 架构4. 安装 Docker5. 配置镜像加速 1. Docker 的工作原理 大型项目组件较多&#xff0c;运行环境也较为复杂&#xff0c;部署会碰到一些问题&#xff1a; ① 依赖关系复杂&#xff0c;容易出现兼容性问题&#xff1…

2023.12.14,搜索遍历,走迷宫,青蛙跳

搜索遍历 AD,一定要模拟队列&#xff0c;在B中&#xff0c;2&#xff0c;6,0&#xff0c;由于6先入队&#xff0c;所以在访问6时&#xff0c;会优先把6的所有结点先入队&#xff0c;也就是确定好了下层的遍历顺序 即两个原则&#xff0c;1由近及远&#xff0c;符合层数递增关系…

GEE查看SMAP的L3级土壤水分产品并导出为TIFF

SMAP的L3级产品&#xff0c;时间分辨率为每日&#xff0c;空间分辨率为9KM&#xff0c;到2023年12月2日停止提供。 查看逐日的土壤水分变化 // 设置感兴趣区域&#xff08;Region of Interest&#xff09; var roi ee.FeatureCollection(projects/a-flyllf0313/assets/dacha…

【图文教程】win10 安装超级好用的 shell 工具---Atuin

Atuin 使用 SQLite 数据库取代了你现有的 shell 历史&#xff0c;并为你的命令记录了额外的内容。此外&#xff0c;它还通过 Atuin 服务器&#xff0c;在机器之间提供可选的、完全加密的历史记录同步功能。 推荐文章&#xff1a;https://mp.weixin.qq.com/s/T7ln6PTOeWEdjtxnor…

POI:对Excel的基本读操作 整理2

1 简单读取操作 public class ExcelRead {String PATH "D:\\Idea-projects\\POI\\POI_projects";// 读取的一系列方法// ...... } 因为07版本和03版本操作流程大差不差&#xff0c;所以这边就以03版本为例 Testpublic void testRead03() throws IOException {//获取…

力士乐触摸屏维修触控屏VR2109.01-00-01-N2-NNN-A

Rexroth力士乐触控屏VCP20.1BUN.768PB-NN-PW数控系统屏幕维修及排查&#xff1a; 力士乐数控机床故障诊断的一般步骤都是相同的。当数控机床发生故障时&#xff0c;除非出现危险及数控机床或人身的紧急情况&#xff0c;一般不要关断电源&#xff0c;要尽可能地保持机床原来的状…

我的隐私计算学习——联邦学习(3)

本篇笔记主要是根据这位老师的知识分享整理而成【公众号&#xff1a;秃顶的码农】&#xff0c;我从他的资料里学到了很多&#xff0c;期间还私信询问了一些困惑&#xff0c;都得到了老师详细的答复&#xff0c;相当nice&#xff01; &#xff08;五&#xff09;纵向联邦学习 —…

AI分割迁移绘画-neural-style

&#x1f3e1; 个人主页&#xff1a;IT贫道-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;私聊博主加WX好友&#xff0c;获取更多资料哦~ &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录 1. 二值化展示图像代码…

性能测试分析案例-定位内核线程CPU利用率太高

环境准备 预先安装 docker、perf、hping3、curl 等工具&#xff0c;如 apt install docker.io linux-tools-common hping3 操作和分析 Linux 在启动过程中&#xff0c;有三个特殊的进程&#xff0c;也就是 PID 号最小的三个进程。 0 号进程为 idle 进程&#xff0c;这也是系…

【Git】查看凭据管理器的账号信息,并删除账号,解决首次认证登录失败后无法重新登录的问题

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是是《代码管理工具》序列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的…

SQL语句详解一

概念 什么是 SQL&#xff1f;&#xff08;如果还未安装MySQL请参考此文章安装下&#xff09; Structured Query Language&#xff1a;结构化查询语言其实就是定义和操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方&#xff0c;称为"方言"。 SQ…

[Linux 进程(二)] Linux进程状态

文章目录 1、进程各状态的概念1.1 运行状态1.2 阻塞状态1.3 挂起状态 2、Linux进程状态2.1 运行状态 R2.2 睡眠状态 S2.3 深度睡眠 D2.4 停止状态 T2.5 僵尸状态 Z 与 死亡状态 X孤儿进程 Linux内核中&#xff0c;进程状态&#xff0c;就是PCB中的一个字段&#xff0c;是PCB中的…

答题小程序源码系统:自带流量主广告位+视频激励广告 带完整的代码安装包以及搭建教程

随着互联网的迅速发展&#xff0c;各种应用程序层出不穷&#xff0c;而答题类小程序由于其独特的互动性和吸引力&#xff0c;成为了当前最热门的应用之一。答题小程序源码系统是一款基于微信小程序开发的源代码系统&#xff0c;它具有丰富的功能和灵活的定制性&#xff0c;可以…

视频号下载保姆级攻略:五大神级下载方法揭秘!

今天我要和大家聊聊一个非常有趣的话题&#xff0c;那就是如何下载视频号的视频。据我所知虽然很多人都知道视频号&#xff0c;但却不知道如何玩好视频号&#xff0c;以及怎么下载视频&#xff0c;我知道有些朋友可能对这个话题还不太了解&#xff0c;但是我相信&#xff0c;只…

决策树(公式推导+举例应用)

文章目录 引言决策树学习基本思路划分选择信息熵信息增益增益率&#xff08;C4.5&#xff09;基尼指数&#xff08;CART&#xff09; 剪枝处理预剪枝&#xff08;逐步构建决策树&#xff09;后剪枝&#xff08;先构建决策树再剪枝&#xff09; 连续值与缺失值处理连续值处理缺失…

【Spring Cloud】微服务架构演变及微服务架构介绍

文章目录 系统架构演变单体应用架构垂直应用架构分布式架构SOA 架构微服务架构 微服务架构介绍微服务架构的常见问题微服务架构的常见概念服务治理服务调用服务网关服务容错链路追踪 微服务架构的常见解决方案ServiceCombSpringCloudSpring Cloud Alibaba 总结 欢迎来到阿Q社区…