Dasturlash tilidagi qator va xesh jadval o'rtasidagi farq nima?


javob bering 1:

Hash jadvallari qatorlardan foydalanadi. Massivlar hashing uchun muhim xususiyatga ega: Agar siz uning indeksini bilsangiz, har bir elementga doimiy ravishda kirishingiz mumkin.

Siz chelaklar uchun massivlardan foydalanishingiz mumkin. Aytaylik, siz matndagi harflar sonini hisoblashni xohlaysiz, masalan, Morse kodi kabi biror narsani loyihalash uchun. Siz 26 ta yozuvdan iborat massiv yaratasiz (oddiy Rim alifbosi uchun urg'u berilmasdan). Har doim harfni ko'rsangiz, indeksni hisoblang va massivdagi ushbu yozuvga o'ting.

Hash jadvallari buni istalgan uzunlikdagi tugmachalar uchun kengaytiradi. Siz kalitning xeshini hisoblab chiqasiz va shu indeksga o'tasiz. Muammo shundaki, bir nechta tugmachalar bir xil xeshga ega bo'lganda. U bilan kurashishning bir necha yo'li mavjud, ulardan ba'zilari xeshning maqsadini bekor qiladi (lekin amalga oshirish oson). Ularning ba'zilari hech bo'lmaganda o'rtacha hisobda doimiy vaqt xususiyatini saqlamaydilar.

Men ko'rgan eng yaxshi narsa bu hash stolining o'lchamidan qat'i nazar, Gonnet va Munroe o'rtacha 50% yuklama koeffitsienti bilan o'rtacha 4tadan ko'proq zarba bo'lganligi isbotlangan. Biroq, bu asosiy raqamlardan foydalanishni talab qiladi va bu bajarishni qiyinlashtiradi. Qanday bo'lmasin asosiy sonlarni topishingiz kerak. Yaxshiyamki, hash jadvallari unchalik katta bo'lmayapti, bu bema'ni bo'lib qoladi.