Coconote
AI notes
AI voice & video notes
Try for free
Memahami Tabel Hash dan Efisiensinya
Mar 26, 2025
Catatan Kuliah: Hash Tables oleh Gayle Laakmann McDowell
Pengantar
Pembicara
: Gayle Laakmann McDowell, penulis
Cracking the Coding Interview
Topik
: Hash Tables
Pentingnya
: Struktur data vital untuk wawancara dan aplikasi kehidupan nyata.
Gambaran Umum tentang Hash Tables
Definisi
: Struktur data yang menyediakan pencarian key-value untuk pengambilan data yang cepat.
Penggunaan
: Mengaitkan nama seseorang dengan informasi mereka untuk akses cepat menggunakan hash tables.
Konsep Kunci
Key dan Value
: Keduanya dapat berupa tipe data apapun (misalnya, string, objek).
Fungsi Hash
: Mengonversi key menjadi bilangan bulat (kode hash), yang dipetakan ke indeks dalam array.
Implementasi
Penyimpanan
: Objek disimpan dalam sebuah array.
Proses
:
Mengonversi key menjadi kode hash menggunakan fungsi hash.
Memetakan kode hash ke indeks dalam array.
Mengambil nilai yang terkait dengan key dengan cepat.
Catatan
: Kode hash bukanlah indeks array; kode hash dipetakan ke indeks yang lebih kecil karena ukuran array yang terbatas.
Penanganan Tabrakan
Tabrakan
: Terjadi ketika dua key dipetakan ke indeks yang sama.
Teknik Resolusi
:
Chaining
: Menyimpan item yang bertabrakan dalam linked list pada indeks yang sama dan mencarinya sesuai kebutuhan.
Alur Proses
Masukkan
: Gunakan fungsi hash untuk mendapatkan kode hash, petakan ke indeks, dan masukkan nilai dalam linked list pada indeks tersebut.
Ambil
: Hitung kode hash, petakan ke indeks, cari key dalam linked list, ambil nilai.
Kompleksitas Waktu
Asumsi
: Dengan fungsi hash yang baik, operasi (masukkan, temukan, hapus) dapat memakan waktu konstan (O(1)).
Kasus Terburuk
: Fungsi hash yang buruk dapat menyebabkan waktu linier (O(n)) karena distribusi yang buruk dan tabrakan.
Kesimpulan
Ringkasan
: Hash tables menyediakan pengambilan data yang efisien, tetapi memerlukan pemahaman tentang penanganan tabrakan dan kualitas fungsi hash.
Rekomendasi
: Pelajari lebih dalam tentang penanganan tabrakan, pengubahan skala, dan berlatih menggunakan hash tables.
Saran
: Kenali aspek dasar dan kompleks untuk wawancara dan penggunaan praktis.
📄
Full transcript