栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 数据结构 —— 平方探测法 —— 除留取余法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 数据结构 —— 平方探测法 —— 除留取余法

平方探测法
    第一次查找: f(key);第二次查找:f(key)+1^2)%B;第三次查找:f(key)±1^2)%B;第四次查找:f(key)+2^2)%B;第五次查找:f(key)±2^2)%B;
代码
import math


def Mod_create(num, hash_table):
    mod_index = num % len(hash_table)
    add = 1
    flag = False
    while True:
        if hash_table[mod_index] == "0":
            hash_table[mod_index] = num
            break
        else:
            mod_index = (num + pow(add, 2)) % len(hash_table)
            if mod_index > len(hash_table):
                flag = True
            if flag:
                mod_index = (num + pow(-1 * add, 2)) % len(hash_table)
                print(mod_index)
        add += 1


if __name__ == '__main__':
    data_all = [12, 65, 70, 99, 33, 67, 48, 99,99]
    hash_tables = ["0"] * 13
    for i in range(len(data_all)):
        Mod_create(data_all[i], hash_tables)
    print(hash_tables)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/741092.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号