2024.2.5

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
typedef int datatype;
//定义结点结构体
typedef struct Node
{datatype data;struct Node *next;
}*node;
//创建结点
node creat_node()
{node s=(node)malloc(sizeof(struct Node));if(NULL==s)//创建失败return NULL;s->data=0;s->next=NULL;return s;
}
//计算最大质数
int prime(int m)
{for(int i=m;i>=2;i--){int flag=0;for(int j=2;j<=sqrt(i);j++){if(i%j==0){flag=-1;break;}}if(flag==0)return i;}
}
//插入
void insert_hash(int key,int p,node hash[])
{int index=key%p; hash[index]; node s=creat_node();s->data=key;if(hash[index]==NULL)hash[index]=s;else{s->next=hash[index];hash[index]=s;}
}
//哈希查找,成功返回0.失败返回-1
int serch_hash(datatype key,int p,node hash[])
{int index=key%p;node head=hash[index];while(head!=NULL){if(head->data==key)return 0;head=head->next;}return -1;
}
int main(int argc, const char *argv[])
{int arr[]={12,24,234,234,23,234,23};int len=sizeof(arr)/sizeof(arr[0]);int m=len*4/3;//哈希表的长度//定义哈希表node hash[m];for(int i=0;i<m;i++)hash[i]=NULL;//定义函数计算p:不大于哈希表长度的最大质数int p=prime(m);//把数组元素存入哈希表for(int i=0;i<len;i++){insert_hash(arr[i],p,hash);}datatype key;//查找printf("please enter serch key:");scanf("%d",&key);int flag=serch_hash(key,p,hash);if(flag==0)puts("exits");elseputs("unexits");return 0;
}

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int half(int key,int *p,int low,int high)
{while(low<=high){int mid=(low+high)/2;if(*(p+mid)<key)low=mid+1;else if(*(p+mid)>key)high=mid-1;else return mid;}return -1;
}
int main(int argc, const char *argv[])
{int arr[]={12,23,45,56,445,5676,6888};int len=sizeof(arr)/sizeof(arr[0]);int key;printf("please input key:");scanf("%d",&key);int i=half(key,arr,0,len-1);if(i==-1)puts("unexist");elseputs("exist");return 0;
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】Linux开发工具(yum、gdb、git)详解

一、软件包管理器 yum 1、什么是软件包 在 Linux 下安装软件&#xff0c;通常的办法是下载到程序的源代码&#xff0c;并进行编译&#xff0c;得到可执行程序。但这样太麻烦了&#xff0c;于是有些人把一些常用的软件提前编译好&#xff0c;做成软件包&#xff08;可以理解成…

深度学习入门笔记(八)可以不断思考的模型:RNN与LSTM

8.1 循环神经网络RNN 之前学到的 CNN 和全连接&#xff0c;模型的输入数据之间是没有关联的&#xff0c;比如图像分类&#xff0c;每次输入的图片与图片之间就没有任何关系&#xff0c;上一张图片的内容不会影响到下一张图片的结果。但在自然语言处理领域&#xff0c;这就成了…

Redis Centos7 安装到启动

文章目录 安装Redis启动redis查看redis状况连接redis服务端 安装Redis 1.下载scl源 yum install centos-release-scl-rh2.下载redis yum install rh-redis5-redis 3. 创建软连接 1.cd /usr/bin 2. In -s /opt/rh/rh-redis5/root/usr/bin/redis-server ./redis-server 3. …

JPEG图像的压缩标准(1)

分3个博客详细介绍JPEG图像的压缩标准&#xff0c;包含压缩和解压缩流程&#xff0c;熵编码过程和文件存储格式。 一、JPEG压缩标准概述 JPEG压缩标准由国际标准化组织 (International Organization for Standardization, ISO) 制订&#xff0c;用于静态图像压缩。JPEG标准包…

redhat grub.cfg配置文件丢失或报错解决

1.实验环境&#xff1a;把grub.cfg删除 [rootexample ~]# rm -rf /boot/grub2/grub.cfg 2.重启服务器 3&#xff0c;发现进入系统失败 输入以下命令 ls: 列出当前设备上的文件和目录。 grub> ls (hd0) (hd0,msdos3) (hd0,msd0s2) (hd0,msdos1) #一般第一个为/boot分区se…

Vue事件中如何使用 event 对象

在Vue中&#xff0c;事件处理函数常常需要获取事件触发时的相关信息&#xff0c;比如鼠标位置、按键信息等。而要获取这些信息&#xff0c;就需要使用event对象。那么在Vue的事件中如何正确使用event对象呢&#xff1f;接下来就来详细介绍一下。 首先&#xff0c;在Vue的事件中…

Gitlab和Jenkins集成 实现CI (一)

Gitlab和Jenkins集成 实现CI (一) Gitlab和Jenkins集成 实现CI (二) Gitlab和Jenkins集成 实现CI (三) 版本声明 部署时通过docker拉取的最新版本 gitlab: 16.8 jenkins: 2.426.3 安装环境 可参考这篇文章 停止防火墙 由于在内网&#xff0c;这里防火墙彻底关掉&#xff…

数码管扫描显示-单片机通用模板

数码管扫描显示-单片机通用模板 一、数码管扫描的原理二、display.c的实现1、void Display(void) 各模式界面定义数据2、void BackupRamToDisRam(void)从缓存区刷新显示映射Ram3、void FreshDisplay(void) 映射显示Ram到主控的IO口4、void LcdDisplay_8bit(void) 映射显示Ram到…

华为配置交换机KPI信息上报分析器示例组网图形

配置交换机KPI信息上报分析器示例 组网图形 图1 KPI信息上报拓扑图 组网需求操作步骤配置文件 组网需求 如图1所示&#xff0c;某企业网络用一台华为公司iMaster NCE-CampusInsight作为分析器对交换机设备进行智能运维管理。iMaster NCE-CampusInsight与交换机之间已经实现路由…

国际物流数字化运输方式选择指南 | 箱讯科技

国际物流涉及多种运输方式&#xff0c;每种方式都有其独特的优势和适用场景。选择合适的运输方式对于确保货物安全、及时到达目的地并控制成本至关重要。以下是对六种主要国际运输方式的简要介绍和选择建议&#xff1a; 国际快递&#xff1a;适用于小件、高价值或急需的货物。…

[word] word 2010宏已被禁用警告关闭方法 #媒体#学习方法

word 2010宏已被禁用警告关闭方法 Word2010宏已被禁用警告关闭方法&#xff1a;在「信任中心设置」选项的宏设置中选择「禁用所有宏&#xff0c;并且不通知」即可。 每次打开Word 2010&#xff0c;都会提示「完全警告&#xff1a;宏已被禁用」提示。自从Word 2010安装完毕&am…

智慧自助餐饮系统(SpringBoot+MP+Vue+微信小程序+JNI+ncnn+YOLOX-Nano)

一、项目简介 本项目是配合智慧自助餐厅下的一套综合系统&#xff0c;该系统分为安卓端、微信小程序用户端以及后台管理系统。安卓端利用图像识别技术进行识别多种不同菜品&#xff0c;识别成功后安卓端显示该订单菜品以及价格并且生成进入小程序的二维码&#xff0c;用户扫描…