欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

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

时间:2023-05-18
平方探测法 第一次查找: f(key);第二次查找:f(key)+1^2)%B;第三次查找:f(key)±1^2)%B;第四次查找:f(key)+2^2)%B;第五次查找:f(key)±2^2)%B; 代码

import mathdef 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 += 1if __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)

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。