# Analisis Algoritma

Pelajari cara menganalisis kompleksitas waktu dan ruang algoritma.

Buka →
# Notasi Big O

Pahami notasi Big O, Omega, dan Theta untuk mengukur kompleksitas.

Buka →
# Linear Search

Implementasikan pencarian linear pada array dan analisis kompleksitasnya.

Buka →
# Binary Search

Implementasikan binary search pada array terurut dengan kompleksitas O(log n).

Buka →
# Bubble Sort

Pelajari bubble sort, kompleksitas O(n^2), dan kapan memakainya.

Buka →
# Selection Sort

Implementasikan selection sort dan pahami tradeoff-nya.

Buka →
# Insertion Sort

Pelajari insertion sort yang efisien untuk data hampir terurut.

Buka →
# Merge Sort

Implementasikan merge sort divide-and-conquer dengan kompleksitas O(n log n).

Buka →
# Quicksort

Pelajari quicksort, pivot selection, dan kompleksitas average vs worst case.

Buka →
# Sorting dan Searching

Bandingkan algoritma sorting dan kapan memakai binary search.

Buka →
# Linked List

Implementasikan singly dan doubly linked list dengan dynamic allocation.

Buka →
# Stack

Bangun struktur data stack dengan array atau linked list.

Buka →
# Queue

Implementasikan queue FIFO dengan array sirkular atau linked list.

Buka →
# Circular Buffer

Pelajari circular buffer untuk data streaming yang efisien.

Buka →
# Hash Table

Implementasikan hash table dengan chaining dan open addressing.

Buka →
# Binary Tree

Pelajari binary tree, traversal inorder/preorder/postorder, dan BST.

Buka →
# Heap dan Priority Queue

Implementasikan binary heap dan priority queue.

Buka →
# Graph

Pelajari representasi graph dengan adjacency matrix dan list.

Buka →
# Memilih Struktur Data

Pelajari kriteria memilih struktur data yang tepat untuk setiap masalah.

Buka →