HASH查找算法—JAVA实现
仅做日常记录,侵权删。hash查找。构建一个hash表,然后存入对应的数据。 存在问题hash冲突。目前有:拉链法和线性探测法来解决hash冲突。参考链接: https://blog.csdn.net/qq_49306008/article/details/120851829
//hash查找。构建一个hash表,然后存入对应的数据。//存在问题hash冲突。目前有:拉链法和线性探测法来解决hash冲突。//https://blog.csdn.net/qq_49306008/article/details/120851829public static void main(String[] args) {int[] source = Data.init();HashTable hashTable = new HashTable(51);for(int i =0 ;i <source.length ;i++){hashTable.add(source[i]);}//查询数据hashTable.search(61);}
public class Entry {int value;Entry next;public Entry(int value){this.value = value;this.next = null;}}
public class HashNode {Entry head;//添加数据public void add(Entry entry){if (head == null) {head = entry;return;}Entry tmp = head;//尾插法while (tmp.next != null) {tmp = tmp.next;}tmp.next = entry;}//查找数据public Entry search(int value){if (head == null) {return null;}Entry tmp = head;while (tmp != null) {if (tmp.value == value) {return tmp;}tmp = tmp.next;}return null;}}
public class HashTable {HashNode[] nodeLists;int size;public HashTable(int size) {this.size = size;nodeLists = new HashNode[size];for (int i = 0; i < size; i++) {nodeLists[i] = new HashNode();}}public void add(int value) {Entry entry = new Entry(value);int hashIndex = hash(value);//将数据添加到对应的链表中。nodeLists[hashIndex].add(entry);}public void search(int value) {int hashIndex = hash(value);//将数据添加到对应的链表中。Entry node = nodeLists[hashIndex].search(value);if (node != null) {System.out.println("在第" + (hashIndex + 1) + "条链表中找到。 :" + value);} else {System.out.println("未找到数据");}}//编写一个散列函数(哈希函数),使用一个简单的取模法private int hash(int value) {return value % size;}}
HASH查找算法—JAVA实现相关推荐
- 查找算法--Java实例/原理
原文网址:查找算法--Java实例/原理_IT利刃出鞘的博客-CSDN博客 简介 本文用Java实例介绍查找算法及其原理. 本内容也是Java后端面试常见的问题. 查找定义 查找定义:根据给定的某个值 ...
- 二分查找算法java
二分查找又称折半查找,它是一种效率较高的查找方法. 折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元 ...
- 数据结构与算法【Java】06---七大查找算法总结
文章目录 数据结构与算法[Java]06---查找算法总结 1.查找算法简介 1.1.查找的定义 1.2.查找算法分类 1.3.常用查找算法 2.线性查找算法 2.1.线性查找简介 2.2.线性查找代 ...
- 七大查找算法(Java版)
文章目录 一.顺序查找 1.1 顺序查找介绍 1.2 顺序查找实现 1.3 顺序查找优化 二.二分查找 2.1 二分查找介绍 2.2 折半查找实现 三.插值查找 3.1 插值查找介绍 3.2 插值查找 ...
- java快速查找算法_Java实现的快速查找算法示例
本文实例讲述了Java实现的快速查找算法.分享给大家供大家参考,具体如下: 快速查找算法,可以根据想要找的是第几个大的数,每次循环都能固定下来一个数在数组完整排完序之后的位置,每次循环都能定一个数的位 ...
- Java高级工程师必备数据结构算法高效查找算法原理分析与实现
查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找本文主要介绍比较难理解的树表查找和哈希查找. 查找定义:根据给定的某个值,在查找表中确定一个 ...
- Algorithm:C++语言实现之SimHash和倒排索引算法相关(抽屉原理、倒排索、建立查找树、处理Hash冲突、Hash查找)
Algorithm:C++语言实现之SimHash和倒排索引算法相关(抽屉原理.倒排索.建立查找树.处理Hash冲突.Hash查找) 目录 一.SimHash算法 1.SimHash算法五个步骤 2. ...
- Java实现插值查找算法 Insert search
下面带来Java版本插值查找算法的实现,本篇一些概念沿用上一篇博客,如数组左索引为left,右索引为right.先说明一下,插值查找算法要求待查找的数组为有序的. 插值查找原理: 1.插值查找算法类似 ...
- java二分查找法视频_078-二分查找算法思路图解
2.网上数据结构和算法的课程不少,但存在两个问题: 1)授课方式单一,大多是照着代码念一遍,数据结构和算法本身就比较难理解,对基础好的学员来说,还好一点,对基础不好的学生来说,基本上就是听天书了 2) ...
最新文章
- Flask框架(flask中的请求上下文和应用上下文,以及请求钩子的使用,Flask-Script 扩展命令行)
- “老师,我不要苹果味的,我要葡萄味的”!
- 基带模型下基于高阶累积量的MFSK信号的调制识别(代码和参考文献见CSDN同名资源)
- LeetCode 530. 二叉搜索树的最小绝对差 思考分析
- 两条边延长角会有什么变化_叶片锁是什么样的 叶片锁使用方法【详解】
- 360全景倒车影像怎么看_别克关怀-后视镜和倒车影像 倒车时到底看哪个
- spark-submit的使用
- svn服务器的搭建过程 主要为服务端
- POJ 2429 GCD LCM Inverse
- Spring源码之ApplicationContext(六)注册BeanPostProcessor
- OFD文件如何打印?怎么打开?如何转换PDF?
- 嵌入式开发——常见的存储器分类和特性介绍
- 一个可以免费下载数据集的网站
- clodop 打印插件打印不显示问题
- 【考研数学】张宇:十月真题做题建议
- 逻辑回归算法及其实现
- O2O营销模式(Online To Offline)
- macbook word插入公式快捷键 输入阿拉伯数字快捷键 快速打开访达快捷键
- [WUSTCTF2020]alison_likes_jojo
- 最短路默写1最短路默写2
热门文章
- python微信api_用Python实现微信公众号API素材库图文消息抓取
- 试用一片3-8译码器74LS138和其它必要的门电路设计一个一位全加器, 被加数为Ai, 加数为Bi, 低位来的进位为Ci-1, 本位和为Si, 本位对高位的进位为Ci
- Graz技术大学计算机图形与视觉小组PEGASUS项目介绍
- 扇贝编程python广告演员_扇贝编程-人人能学会的python课 az App Store-ban
- 树展示 移动端_一种手机端树形数据结构的展现方法与流程
- 好的中层管理者要兼顾公司和员工的利益
- swagger在VS2019 .net core2.2中的使用,及报错undefined /swagger/v1/swagger.json的解决办法
- css3遮罩——新功能引导层
- 仿淘宝ViewPager左滑加载详情界面
- java的学习????