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) 我们使用一个下标范围比较大的数组来存储元素.可以设计一个函数(哈希函数, 也叫做散列函数),使得每个元素的关键字都与一个函数值(即数组下标)相对应,于是用 ...
随机推荐
- Hadoop讲解
1.简介 Hadoop是一款开源的大数据通用处理平台,其提供了分布式存储和分布式离线计算,适合大规模数据.流式数据(写一次,读多次),不适合低延时的访问.大量的小文件以及频繁修改的文件. *Hadoo ...
- ubuntu16.04下安装pcl点云库
安装依赖项 sudo apt-get update sudo apt-get install git build-essential linux-libc-dev sudo apt-get insta ...
- Oracle HA 之 基于活动数据库复制配置oracle 11.2 dataguard
规划:主库:db_name=dbking db_unique_name=dbkingpri 备库:db_name=dbking ...
- The Backpropagation Algorithm
https://page.mi.fu-berlin.de/rojas/neural/chapter/K7.pdf 7.1 Learning as gradient descent We saw in ...
- Django - 项目总结
总结: 基础,进阶,项目 Django - 练习(图书管理系统) 前后端分离得项目: vue + rest framework 项目: 图书增删改查页面 BBS + BLOG系统 CRM系统 在线 ...
- JSP学习(第一课)
JSP页面组成: 比如: 打开网页,右键查看源代码: 打开网页: 注意: <%!%>里面定义的属性是成员属性,相当于类的属性,方法相当于是全局的方法,相当于是类里面的方法.但是它是不可以进 ...
- (android实战)破解apk
简单的总结几个关键步骤: 一.工具准备:apktool , dex2jar , jd-gui 二.使用dex2jar + jd-gui 得到apk的java源码 1.用解压工具从 apk包中取出 cl ...
- pyqt简单介绍和使用
QML和PyQT5联合编程 安装pyqt pip3 install PyQT5 main.QML import QtQuick 2.2 import QtQuick.Controls 1.1 impo ...
- idea中使用插件Grep Console在IDEA的log的不同的级别,可以设置不同的颜色。
一.安装. 1. 2. 3. 二,使用. 1. 2.
- 2018-2019 ACM-ICPC, Asia East Continent Finals Solution
D. Deja vu of … Go Players 签. #include <bits/stdc++.h> using namespace std; int t, n, m; int m ...