natija :
Ro'yxatning eng kichik elementi: 3
Xeshlash
Deyarli ideal xususiyatlarga ega hash daraxtlari tasvirlangan. Ushbu xash daraxtlari boshlang'ichni talab qilmaydi ildiz xesh jadvali hali ham tezroq va zanjirli yoki juft xeshli daraxtlarga qaraganda ancha kam joy ishlatadi. Qo'shish, qidirish va o'chirish vaqtlari kichik va doimiy, kalitlar to'plamining hajmiga bog'liq emas, operatsiyalar O (1). Qo'shish, qidirish va olib tashlash operatsiyalari uchun eng kichik eng yomon vaqtlar kafolatlanishi mumkin va o'tkazib yuborilganlar muvaffaqiyatli qidiruvlarga qaraganda kamroq xarajat qiladi. Massiv xaritalangan urinishlar (AMT), birinchi marta Tez va Space Efficient Trie Searches, Bagwell [2000], asosiy ma'lumotlar strukturasini tashkil qiladi. Kontseptsiya shunday keyin yagona erishadigan algoritmni olish uchun tashqi disk yoki taqsimlangan xotiraga qo'llaniladi kirish qidiruvlari, yagona kirish qo'shimchalariga yaqin va 80 foizdan ortiq disk blokirovkasini yuklash omillari. Linear Hashing, Litwin, Neimat va Schneider [1993] va B-Trees bilan amalga oshiriladi, R.Bayer va E.M.Makkreyt [1972]. Bundan tashqari, AMTlarning yana ikkita qo'llanilishi qisqacha tasvirlangan, ya'ni, Class / Selektor jo'natish jadvallari va IP Marshrutlash jadvallari. Algoritmlarning har biri zamonaviy ilovalar bilan solishtirish mumkin bo'lgan ishlash va makondan foydalanishga ega, ammo oddiyroq. Yaxshi xesh funksiyasini yaratish uchun siz kalitlarning taqsimlanishini bilishingiz kerak. Agar kalit taqsimoti ma'lum bo'lsa, ideal holatda kalit zichligi va xesh qiymatining zichligi taqsimoti bir xil bo'lishi kerak.
def folding_hash(input_str, chunk_size=4):
# Matnning uzunligi
length = len(input_str)
# Kiritilgan chunk_size bo'yicha bo'linib, yig'indisi olinadi
total_sum = 0
for i in range(0, length, chunk_size):
chunk = input_str[i:i + chunk_size]
total_sum += sum(ord(char) for char in chunk)
# Natijani qaytarish
return total_sum
# Toshimova Gulshoda ni hesh qiymatini hisoblash
name = "Toshimova Gulshoda"
hash_value = folding_hash(name)
# Hesh qiymatini chiqarish
print(f"'{name}' ning xesh qiymati: {hash_value}")
|