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)
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; 代码
相关推荐