Hash Table : (Karma Tablolar)

MUHAMMET ÇOKYAMAN
2 min readMar 29, 2021

Bir hash tablosu anahtarları(key) değerlerle(value) eşleştiren bir veri yapısıdır. Bir dizi anahtar değeri bir dizinin bir dizi dizinine dönüştürme tekniğidir. Anahtarları değerlerle eşleştirebilen bir yapı olan ilişkilendirilebilir bir dizi uygulamak için kullanılır. Bir Karma Tablosu (hash table), bir dizini, istenen değerin bulunabileceği bir grup veya yuva dizisi halinde hesaplamak için bir karma işlevi kullanır. Wikipedia’dan.

avantaj : Karma tablolar(hash table) öğelere sabit zamanda erişim sağlar, bu nedenle arama ve veri alma işlemlerine öncelik veren algoritmalar için şiddetle tavsiye edilirler. Karma oluşturma, ekleme, silme ve arama işlemlerini gerçekleştirmek için sabit bir zaman aldığından, büyük miktarda veri için idealdir. Big O notasyonu açısından, işlem 0 (1) 0 (1) ‘dir. Ortalama olarak, bir karma tablo araması, diğer tablo arama veri yapılarından daha verimlidir

dezavantaj: Bazen bir karma işlevi birden fazla anahtar için aynı dizini oluşturabilir. Bu senaryoya hash çarpışması (hash collision )adı verilir. Çarpışmalar bir sorundur çünkü bir karma tablodaki her yuvanın tek bir eleman depolaması gerekir.

hash collision çözümleri :

  • Seperate Chaining
  • Linear Probing
  • quadratic probing
  • double hashing

Bende bu yazımda Seperate Chaining ve Linear Probing kullanıcam . Eğer ne oldukaları hakkında bir fikriniz yoksa verdiğim linkten ne olduğunu gayet iyi anlıyacağınızdan eminim 👍 [go]

A) Linear Probing

Doğrusal İnceleme (Linear Probing ), Açık Adresleme (open addressing) stratejilerinden biridir ve Açık Adresleme Stratejisi ile, paket başına yalnızca bir anahtar / değer (key-value) çiftine izin veririz. Bir çarpışma bulduğumuzda, boş bir kova bulana kadar dizide birer birer arttırma işlemi yapılır.

Hash Create :

add :

search :

remove :

size :

isEmpty :

B.Separate Chaining

Ayrı Zincirleme(separate chaining) ile onları aynı kovada depolayarak başka bir tür listeyi içeride saklıyoruz. Bağlantılı Liste (Linked List) veya Dizi (Array) ile uygulanırsa, arama süresi paket başına ortalama anahtar sayısına bağlı olacaktır.

Hash Create :

add :

search :

remove :

size & isEmpty :

KODLARA BAKIN 🎉

Bu içeriklerin devamı gelecek… JavaScript ile mutlu günler 👨‍💻👩‍💻.

github :https://www.github.com/ckymn

linkedin :https://www.linkedin.com/in/ckymn/

Reference :

JavaScript Data Structures and Algorithms Masterclass — Udemy
JavaScript Hashmap Equivalent — StackOverflow
5 WAYS TO USE A JAVASCRIPT HASHMAP — Sunfish Empire LLC
Objects and Hash Tables in Javascript — Medium
Hash table — Wikipedia
Are JS objects hash tables? — Quora
Learn to Code with JavaScript Hashes — Codelikethis.
The Pragmatic Programmer — goodreads.com

Benim adım Muhammet,Türkiye’de Full Stack Developer’ım . Daha fazla makale için takip edin.🤓

--

--