რა განსხვავებაა მასივსა და ჰაშ ცხრილს პროგრამირების ენაზე?


პასუხი 1:

ხაშის მაგიდები იყენებენ მასივებს. მასივს აქვს მნიშვნელოვანი თვისება ჰასუსირებისთვის: შეგიძლიათ თითოეული ელემენტის წვდომა მუდმივ დროში, თუ იცით მისი ინდექსი.

თქვენ შეგიძლიათ გამოიყენოთ მასივები თაიგულებისთვის. დავუშვათ, რომ გსურთ დაითვალოთ ასოების რაოდენობა ტექსტში, მაგალითად, შეიმუშავოთ Morse კოდი მსგავსი რამ. თქვენ შექმნით მასივს 26 ჩანაწერით (მარტივი რომაული ანბანისთვის აქცენტის გარეშე). როდესაც ხედავთ წერილს, გამოთვალეთ ინდექსი და გადადით მასში შესასვლელში.

Hash ცხრილები ამას ვრცელდება ნებისმიერი სიგრძის გასაღებისთვის. თქვენ გამოთვლით გასაღების ჰაშს და გადადით ამ ინდექსში. პრობლემა ის არის, როდესაც მრავალ კლავიატურას აქვს იგივე ჰაში. ამის მოგვარების რამდენიმე გზა არსებობს, რომელთაგან ზოგიერთი გააუქმებს ჰეშტის დანიშნულებას (მაგრამ მისი განხორციელება მარტივია). ზოგი მათგანი არ ინარჩუნებს მუდმივი დროის ქონებას, ყოველ შემთხვევაში, საშუალოდ.

საუკეთესო რამ, რაც მე ვნახე, არის Add-the-hash rehash, რომელშიც Gonnet და Munroe დადასტურდა, რომ მათ ჰქონდათ საშუალოდ 4-ზე მეტი ჰიტები 50% დატვირთვის ფაქტორით, მიუხედავად ხაშის ცხრილის ზომის. ამასთან, ეს მოითხოვს პრემიერ ნომრების გამოყენებას და ეს ართულებს შესრულებას. თქვენ უნდა იპოვოთ ძირითადი ნომრები როგორღაც. საბედნიეროდ, ჰაშის მაგიდები არ არის იმდენად დიდი, რომ ეს სასაცილოა.