2024.2.5 作业

1.请编程实现哈希表的创建存储数组{12,24,234,234,23,234,23},输入key查找的值,实现查找功能

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
typedef int datatype;
typedef struct Node
{datatype data;struct Node *next;
}*node;
int prime(int m)
{for(int i=m;i>=2;i--){int flag=0;for(int j=2;j<sqrt(m);j++){if(i%j==0){flag=-1;break;}}if(flag==0)return i;}
}
node create()
{node s=(node)malloc(sizeof(struct Node));if(s==NULL)return NULL;s->data=0;s->next=NULL;return s;
}
void insert_hash(int key,node hash[],int p)
{int index=key%p;node s=create();s->data=key;if(hash[index]==NULL)hash[index]=s;else{s->next=hash[index];hash[index]=s;}
}
void output(node hash[],int m)
{for(int i=0;i<m;i++){printf("%d:",i);node p=hash[i];while(p){printf("%-5d",p->data);p=p->next;}puts("");}
}
int search_key(node hash[],int p,int key)
{int index=key%p;node head=hash[index];while(head!=NULL){if(key==head->data)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;int p=prime(m);for(int i=0;i<len;i++)//把数组元素存到哈希表中{insert_hash(arr[i],hash,p);}//输出哈希表output(hash,m);//查找int key;printf("please enter the key:");scanf("%d",&key);int flag=search_key(hash,p,key);if(flag==0)puts("exist");if(flag==-1)puts("unexist");return 0;
}

2.现有数组{12,23,45,56,445,5676,6888],请输入key实现二分查找

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int half_search(int arr[],int key,int len,int low,int high)
{while(low<=high){int m=(low+high)/2;if(key>arr[m]){low=m+1;}else if(key==arr[m]){return m;}else {high=m-1;}}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 low=1;int high=len;int key;printf("please enter the search key:");scanf("%d",&key);int index=half_search(arr,key,len,low,high);printf("the search index:%d\n",index);return 0;
}

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

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

相关文章

【机器学习】支持向量机(SVM)

支持向量机&#xff08;SVM&#xff09; 1 背景信息 分类算法回顾 决策树 样本的属性非数值 目标函数是离散的 贝叶斯学习 样本的属性可以是数值或非数值目标函数是连续的&#xff08;概率&#xff09; K-近邻 样本是空间&#xff08;例如欧氏空间&#xff09;中的点目标函…

文生图提示词:情感表达

情感和氛围 --情感表达 Emotional Expression 尝试捕捉人类情感的广泛性和复杂性&#xff0c;展示了在讨论和创作艺术作品时可以使用的丰富情感词汇。 Joyful 欢乐的 Sad 悲伤的 Angry 愤怒的 Peaceful 平和的 Excited 兴奋的 Calm 平静的 Melancholic 忧郁的 Hopeful 有希望的…

73. 矩阵置零(Java)

目录 题目描述&#xff1a;输入&#xff1a;输出&#xff1a;代码实现&#xff1a; 题目描述&#xff1a; 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 输入&#xff1a; matrix [[1,1,1],[1,0,…

【开源】SpringBoot框架开发个人健康管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 健康档案模块2.2 体检档案模块2.3 健康咨询模块 三、系统展示四、核心代码4.1 查询健康档案4.2 新增健康档案4.3 查询体检档案4.4 新增体检档案4.5 新增健康咨询 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpri…

Elasticsearch:使用查询规则(query rules)进行搜索

在之前的文章 “Elasticsearch 8.10 中引入查询规则 - query rules”&#xff0c;我们详述了如何使用 query rules 来进行搜索。这个交互式笔记本将向你介绍如何使用官方 Elasticsearch Python 客户端来使用查询规则。 你将使用 query rules API 将查询规则存储在 Elasticsearc…

Depth Anything放入MVS中?

这是Depth Anything的深度值depth&#xff0c;这个depth通过depth depth_anything(image)求得。 但想要把这个深度值depth嵌入到三维重建算法框架中&#xff0c;并不是一件容易得事情&#xff0c;拿OpenMVS举例&#xff0c;下图是OpenMVS输出深度图的函数。 OpenMVS的深度值保…

3D打印新突破!2024年第二篇Science研究!

2024年3D打印技术领域第二篇Science文章于2月8日发表。 来自澳大利亚昆士兰大学&#xff08;Jingqi Zhang等&#xff09;、重庆大学&#xff08;Ziyong Hou 、Xiaoxu Huang&#xff09;、丹麦技术大学的联合团队发表了题为“Ultrauniform, strong, and ductile 3D-printed tita…

[office] Excel表格中自动添加的超连接怎么取消? #媒体#其他#知识分享

Excel表格中自动添加的超连接怎么取消&#xff1f; Excel表格中自动添加的连接怎么取消&#xff1f;有时候在Excel2013中输入网址或邮箱时会自动添加超连接&#xff0c;本质上这是很人性化的功能&#xff0c;可是对很多人来说可能用不到&#xff0c;而且很繁琐&#xff0c;下面…

请问半吊子 C++选手该如何深入学习 C++?

请问半吊子 C选手该如何深入学习 C? 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff0…

【Linux】学习-基础IO拓展篇

Linux基础IO拓展篇—详解文件系统 理解文件系统 在Linux基础IO篇中&#xff0c;我们站在用户的视角对文件进行了理解&#xff0c;主要是针对被打开的文件&#xff0c;那么有没有没有被打开的文件呢&#xff1f;当然有&#xff01;今天我们换个视角&#xff0c;来站在系统的角…

【python5】闭包/装饰器,

文章目录 1.闭包和装饰器&#xff1a;函数里return就是闭包2.解析eeprom&#xff1a;如下是二进制文件&#xff0c;C8是一个字节3.json/configparser/optparse&#xff1a;json.dumps&#xff08;将字典转化为字符串&#xff0c;将json信息写进文件&#xff09;&#xff0c;jso…

2024.02.11作业

1.请使用递归实现n! #include <stdio.h> #include <stdlib.h> #include <string.h>int func(int n) {if (n 1){return 1;}return func(n - 1) * n; }int main() {int n 5;printf("%d\n", func(5));return 0; } 2.请使用递归实现0-n的和 #inclu…