Algoritma greedy berasal dari bahasa inggris, yang berarti tamak atau rakus. Algoritma greedy merupakan jenis algoritma yang menggunakan pendekatan penyelesaian masalah dengan mencari nilai optimum pada setiap langkahnya. Nilai optimum ini dikenal dengan istilah local optimum. Dengan harapan bahwa langkah sisanya mengarah ke solusi optimum global (Global optimum). Pada banyak kasus algoritma greedy tidak akan menghasilkan solusi paling optimal, akan tetapi algoritma greedy biasanya memberikan solusi yang mendekati nilai optimum dalam waktu yang cukup cepat. Oleh karena itu, pada setiap langkah diperlukan keputusan terbaik dalam menentukan pilihan. Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi. Hanya ada dua macam persoalan optimasi : Maksimasi (Maximization) Minimasi (Minimization) Contoh persoalan optimasi : Masalah penukaran uang Diberikan uang senilai A. Tukar A dengan koin-koin uang yang ada. Berapa jumlah minimum koin yang diperlukan untuk penukaran tersebut? Persoalan Minimasi Contoh tersedia banyak koin 1, 5, 10, 25 Uang senilai A = 32 dapat ditukar dengan banyak cara berikut : 32 = 1 + 1 + 1 + .. + 1 (32 koin) 32 = 5 + 5 + 5 + 5 + 10 + 1 + 1 (7 koin) 32 = 10 + 10 + 10 + 1 + 1 (5 koin) …dst Minimum : 32 = 25 + 5 + 1 + 1 (4 koin) Tinjau masalah penukaran uang Strategi greedy : pada setiap langkah, pilihlah koin dengan nilai terbesar dari himpunan koin yang tersisa. Misal A = 32, koin yang tersedia : 1, 5, 10, dan 25 Langkah 1 : pilih satu buah koin bernilai 25 (total = 25) Langkah 2 : pilih satu buah koin bernilai 5 (total = 25 + 5 = 30) Langkah 3 : pilih dua buah koin bernilai 1 (total = 25 + 5 + 1 = 31) Solusi : jumlah koin minimum = 4 (Solusi optimal)