diff --git a/hash-table.md b/hash-table.md new file mode 100644 index 0000000..54b9c3f --- /dev/null +++ b/hash-table.md @@ -0,0 +1,28 @@ +# Hash Function/ Hash Table + +**Indexleme** +- Arraylerde 0 bazlı bir indexleme vardır. Bazı programlama dillerin 1 bazlı indexlemeler olsa da genel olarak 0 bazlı indexleme kullanılır. + +image + +**Hash Function/ Hash Table** +- Hash Table, key value prensibine dayanan bir array kümesidir. Key olarak çağırdığınız elemanın değerini (value) yansıtır. +- Hash Table yerine dizileri kullanabilirdik. Fakat her ürünü ve fiyatını tek tek aramak istemediğimiz için hash table kullanıyoruz. Peki bu süreç nasıl işliyor? Hemen bir örnek yapalım. Örneğimiz bir kuru yemiş dükkanından gelecek. + +image + +- Bu kısımda ilk olarak bulunan ürün sayımız kadar değeri olan bir Array oluşturduk. +- Urunlerin isimlerini urun sayisina esit bir array olusturacagiz ciktilar alacagiz -> bunlar index ler olcak. +- Daha sonra hash fonksiyonundan ürünleri geçirerek index değerlerine ulaştık. +- urunlerin fiyatlarin bu indexlerde tutacagiz +- Arraylerde bize kacinci eleman olursa olsun sabit surede istenen lokasyondaki elemani verebiliyordu. Bu sabit surede erismeyi lokasyon bazli degil, tanim bazli kullanmak icin 3.elemani getir degil, bana elmaya karsilik gelen elemani/fiyati getir demis oluyoruz. + +image + +- Şifrelendiği için artık her badem keyi gönderildiğinde 85TL, fıstık keyi gönderildiğinde ise 69 sonucu verecektir. +- Biri bize bir urun fiyatini sordugunda bu urunu olusturdugumuz fonksiyona besleyip arraydeki indexi neredeymis, onu bulacagiz. Bu fonksiyona `Hash Function`, `Hash Func + Array` yapisinada `Hash Table` deniyor. +- Özetle, elimizde var olan verileri bir fonksiyondan geçirip indexliyoruz. Bu fonksiyona hash function, bu fonksiyon ile birleştiğimiz dizi yapısına ise Hash Table diyoruz. + +## References: +1. [hash-table-nedir](https://www.youtube.com/watch?v=_TCkO3DnVs4) +2. [hash-table-full-definition](https://www.hackerearth.com/practice/data-structures/hash-tables/basics-of-hash-tables/tutorial/)