Sobes.tech
Junior

რა არის ჰეშ სია?

sobes.tech AI

პასუხი AI-სგან

ჰეშ მაგიდა — ეს მონაცემთა სტრუქტურაა, რომელიც ახორციელებს ასოციაციურ მასივს (სლოვაკს). ის ინახავს "საკლიტ-ღირებულების" წყვილებს, სადაც კლავიშები უნიკალურია.

ძირითადი პრინციპები:

  • ჰეშ ფუნქცია: გარდაქმნის კლავიშს რიცხვად (ჰეშ კოდი ან ინდექსი). ეს ინდექსი მიუთითებს შენახვის ადგილს (კასრებში).
  • მრავალმხრივი (კასრები): რეალური შენახვა "საკლიტ-ღირებულების" წყვილების.
  • კოლიზიები: სიტუაცია, როდესაც სხვადასხვა კლავიშები ერთსა და იმავე ჰეშ კოდს ქმნიან.

კოლიზიების გადაჭრა:

  • საკლიტ-კავშირი (Separate chaining): თითოეულ კასრში ინახება სია (ან სხვა მონაცემთა სტრუქტურა) ერთსა და იმავე ჰეშ კოდზე მყოფი ელემენტების.
  • გახსნილი მისამართი (Open addressing): კოლიზიის შემთხვევაში, ეძებს თავისუფალ კასრს სხვადასხვა სტრატეგიებით (გადაზიდული სონდომა, კვადრატული სონდომა, ორმაგი ჰეშირება).

მახასიათებლები:

  • სწრაფი წვდომა: იდეალურ შემთხვევაში O(1) დამატების, ძიებისა და წაშლის ოპერაციებისთვის.
  • ჰეშ ფუნქციის ხარისხზე დამოკიდებულება: ჰეშ ფუნქციის ხარისხი და კოლიზიების გადაჭრის სტრატეგია გავლენას ახდენს შესრულებაზე.
  • მეხსიერების გამოყენება: საჭიროებს დამატებით მეხსიერებას კასრებისთვის.

გამოყენება QA-ში:

  • ტესტის მონაცემების შენახვა (კლავი - პარამეტრის სახელი, მნიშვნელობა - ელოდებოდ ან ფაქტობრივ მნიშვნელობა).
  • ელემენტების უნიკალურობის შემოწმება (მაგ., მომხმარებლის ID-ები).
  • ქეშების განხორციელება.