python 哈希查找
- import random
- INDEXBOX= #哈希表元素个数
- MAXNUM= #数据个数
- class Node: #声明链表结构
- def __init__(self,val):
- self.val=val
- self.next=None
- global indextable
- indextable=[Node]*INDEXBOX #声明动态数组
- def create_table(val): #建立哈希表子程序
- global indextable
- newnode=Node(val)
- myhash=val% #哈希函数除以7取余数
- current=indextable[myhash]
- if current.next==None:
- indextable[myhash].next=newnode
- else:
- while current.next!=None:
- current=current.next
- current.next=newnode #将节点加入链表
- def print_data(val): #打印哈希表子程序
- global indextable
- pos=
- head=indextable[val].next #起始指针
- print(' %2d:\t' %val,end='') #索引地址
- while head!=None:
- print('[%2d]-' %head.val,end='')
- pos+=
- if pos % ==:
- print('\t')
- head=head.next
- print()
- def findnum(num): #哈希查找子程序
- i=
- myhash =num%
- ptr=indextable[myhash].next
- while ptr!=None:
- i+=
- if ptr.val==num:
- return i
- else:
- ptr=ptr.next
- return
- #主程序
- data=[]*MAXNUM
- index=[]*INDEXBOX
- for i in range(INDEXBOX): #清除哈希表
- indextable[i]=Node(-)
- print('原始数据:')
- for i in range(MAXNUM):
- data[i]=random.randint(,) #随机数建立原始数据
- print('[%2d] ' %data[i],end='') #并打印出来
- if i%==:
- print()
- for i in range(MAXNUM):
- create_table(data[i]) #建立哈希表
- print()
- while True:
- num=int(input('请输入查找数据(1-30),结束请输入-1:'))
- if num==-:
- break
- i=findnum(num)
- if i==:
- print('#####没有找到 %d #####' %num)
- else:
- print('找到 %d,共找了 %d 次!' %(num,i))
- print('\n哈希表:')
- for i in range(INDEXBOX):
- print_data(i) #打印哈希表
- print()
python 哈希查找的更多相关文章
- python数据结构与算法 29-1 哈希查找
).称为哈希查找. 要做到这种性能,我们要知道元素的可能位置.假设每一个元素就在他应该在的位置上,那么要查找的时候仅仅须要一次比較得到有没有的答案,但以下将会看到.不是这么回事. 到10. water ...
- sdut 487-3279【哈希查找,sscanf ,map】
487-3279 Time Limit: 2000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 题目链接: sdut: http://acm.sdut.ed ...
- 用Python和FFmpeg查找大码率的视频文件
用Python和FFmpeg查找大码率的视频文件 本文使用Python2.7, 这个工作分两步 遍历目录下的视频文件 用ffprobe获取是视频文件的码率信息 用ffprobe 获取json格式的视频 ...
- Python实现二分查找
老生常谈的算法了. #!/usr/bin/python # -*- coding:utf-8 -*- # Filename: demo.py # 用python实现二分查找 def binarySea ...
- 数据结构与算法之PHP查找算法(哈希查找)
一.哈希查找的定义 提起哈希,我第一印象就是PHP里的关联数组,它是由一组key/value的键值对组成的集合,应用了散列技术. 哈希表的定义如下: 哈希表(Hash table,也叫散列表),是根据 ...
- python 模块路径查找 及 添加
**** python 模块路径查找: 通过模块的__file__属性来确定: **** 模块路径添加: 方法一:函数添加1 import sys2 查看sys.path3 添加sys.path.ap ...
- 用 Python 实现文件查找
用 Python 实现文件查找(BIF实现及队列实现) (1)利用内置函数实现文件查找 1.功能:返回用户输入的文件的绝对路径 2.设计思路: (1)用户输入在哪个盘进行查找 (2)遍历此盘文件,若为 ...
- hash 哈希查找复杂度为什么这么低?
hash 哈希查找复杂度为什么这么低? (2017-06-23 21:20:36) 转载▼ 分类: c from: 作者:jillzhang 出处:http://jillzhang.cnblogs ...
- 查找算法(7)--Hash search--哈希查找
1.哈希查找 (1)什么是哈希表(Hash) 我们使用一个下标范围比较大的数组来存储元素.可以设计一个函数(哈希函数, 也叫做散列函数),使得每个元素的关键字都与一个函数值(即数组下标)相对应,于是用 ...
随机推荐
- [面经] 南京SAP面试(下)
上一篇讲到了一面结束,这一篇说说剩下的事情. 周三上午一面完了之后回去上班,本以为要等几天才会二面,结果那个经理M下午就打电话给我,约了第二天(周四)下午过去面试,会有Boss从上海过来面,办事效率还 ...
- Scala简介及基础语法
一.scala简介 官网:https://www.scala-lang.org/ Scala语言很强大,集成了面向对象和函数式编程的特点. 运行在JVM(jdk). 大数据中为什么学习scala? s ...
- Just a Hook---hdu1698(线段树---区间处理)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 现有n个金属(编号1---n),每个金属的材质都是铜,有m个操作,每个操作都是把编号 L 到 R ...
- 两个提高工作效率的神器-Restlet Client和fe助手
首先是要FQ,百度***或者直接下载蓝灯. 然后安装第一个WEB前端助手:
- sql server学习路径地址
联机丛书2005:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2005/ms130214(v=sql.90) 联 ...
- 【Lua】LDoc生成Lua文档工具的使用
参考资料: http://my.oschina.net/wangxuanyihaha/blog/188909 LDoc介绍: LDoc是一个Lua的文档生成工具,过去,比较常用的Lua生成 ...
- 【转】Deep Learning(深度学习)学习笔记整理系列之(一)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-0 ...
- js cookie的读写
cookie是一小段信息,以键/值对的信息保存在计算机硬盘上的字符串, cookie存储容量大概在4kb,不同的浏览器厂家对cookie大小的限制有微微的差异:cookie主要的本质是“识别”,通过识 ...
- Codeforces Round #532 (Div. 2) Solution
A. Roman and Browser 签到. #include <bits/stdc++.h> using namespace std; ]; int get(int b) { ]; ...
- eclipse如何设置编译后target目录不提交svn服务器
eclipse设置 windows ->prefrences->team->Ignored Resource 点击Add Pattern 输入 */target/* 等 ...