Struktur Data & Algoritma
Visualisasi interaktif, contoh kode dalam Swift, Kotlin, TypeScript, Python & Java, serta soal LeetCode pilihan, satu topik dalam satu waktu.
Struktur Data
Blok memori yang bersebelahan untuk menyimpan elemen bertipe sama, yang bisa diakses lewat index dalam waktu O(1).
Rangkaian node, di mana setiap node menyimpan sebuah nilai dan pointer ke node berikutnya.
Struktur LIFO (Last In, First Out): elemen ditambahkan dan diambil dari ujung yang sama (top).
Struktur FIFO (First In, First Out): elemen ditambahkan di belakang dan diambil dari depan.
Penyimpanan key-value yang memakai hash function untuk memetakan key ke index bucket, sehingga pencarian rata-rata O(1).
Sorting (Pengurutan)
Berulang kali menukar elemen bersebelahan yang urutannya salah, sehingga elemen terbesar yang belum terurut "menggelembung" ke posisinya di setiap putaran.
Berulang kali mencari elemen terkecil dari bagian yang belum terurut, lalu memindahkannya ke batas bagian yang sudah terurut.
Membangun sub-array terurut satu elemen demi satu, dengan menyisipkan setiap elemen baru ke posisi yang tepat.
Algoritma divide-and-conquer yang membagi array menjadi dua secara rekursif, mengurutkan tiap bagian, lalu menggabungkannya kembali.
Algoritma divide-and-conquer yang memilih pivot, mempartisi elemen di sekitarnya, lalu mengurutkan setiap partisi secara rekursif.
Searching (Pencarian)
Memeriksa setiap elemen dari awal sampai target ditemukan atau sampai akhir. Bisa dipakai pada koleksi yang belum terurut.
Membagi dua ruang pencarian di setiap langkah dengan membandingkan target dengan elemen tengah. Koleksinya harus sudah terurut.
Algoritma Graph
Menjelajahi semua tetangga di kedalaman saat ini sebelum turun lebih dalam, memakai queue untuk memproses node level demi level.
Menjelajahi setiap cabang sedalam mungkin sebelum mundur (backtracking), memakai rekursi atau stack eksplisit.