Junior
რა არის ჰეშ სია?
sobes.tech AI
პასუხი AI-სგან
ჰეშ მაგიდა — ეს მონაცემთა სტრუქტურაა, რომელიც ახორციელებს ასოციაციურ მასივს (სლოვაკს). ის ინახავს "საკლიტ-ღირებულების" წყვილებს, სადაც კლავიშები უნიკალურია.
ძირითადი პრინციპები:
- ჰეშ ფუნქცია: გარდაქმნის კლავიშს რიცხვად (ჰეშ კოდი ან ინდექსი). ეს ინდექსი მიუთითებს შენახვის ადგილს (კასრებში).
- მრავალმხრივი (კასრები): რეალური შენახვა "საკლიტ-ღირებულების" წყვილების.
- კოლიზიები: სიტუაცია, როდესაც სხვადასხვა კლავიშები ერთსა და იმავე ჰეშ კოდს ქმნიან.
კოლიზიების გადაჭრა:
- საკლიტ-კავშირი (Separate chaining): თითოეულ კასრში ინახება სია (ან სხვა მონაცემთა სტრუქტურა) ერთსა და იმავე ჰეშ კოდზე მყოფი ელემენტების.
- გახსნილი მისამართი (Open addressing): კოლიზიის შემთხვევაში, ეძებს თავისუფალ კასრს სხვადასხვა სტრატეგიებით (გადაზიდული სონდომა, კვადრატული სონდომა, ორმაგი ჰეშირება).
მახასიათებლები:
- სწრაფი წვდომა: იდეალურ შემთხვევაში O(1) დამატების, ძიებისა და წაშლის ოპერაციებისთვის.
- ჰეშ ფუნქციის ხარისხზე დამოკიდებულება: ჰეშ ფუნქციის ხარისხი და კოლიზიების გადაჭრის სტრატეგია გავლენას ახდენს შესრულებაზე.
- მეხსიერების გამოყენება: საჭიროებს დამატებით მეხსიერებას კასრებისთვის.
გამოყენება QA-ში:
- ტესტის მონაცემების შენახვა (კლავი - პარამეტრის სახელი, მნიშვნელობა - ელოდებოდ ან ფაქტობრივ მნიშვნელობა).
- ელემენტების უნიკალურობის შემოწმება (მაგ., მომხმარებლის ID-ები).
- ქეშების განხორციელება.