Efisiensi Algoritma adalah ukuran seberapa baik suatu algoritma melakukan tugas yang diberikan relatif terhadap penggunaan sumber daya. Algoritme yang efisien melakukan pekerjaan dalam jumlah maksimum dengan menggunakan sumber daya paling sedikit, seperti waktu, penyimpanan, memori, atau energi. Efisiensi algoritma dapat diukur dalam kompleksitas waktu dan kompleksitas ruang. Dalam ilmu komputer, gagasan tentang algoritma yang efisien sering dibandingkan dengan algoritma “terbaik” atau “optimal”.
Kompleksitas waktu adalah ukuran berapa lama waktu yang dibutuhkan suatu algoritma untuk menyelesaikan tugasnya relatif terhadap ukuran masukannya. Algoritme dengan kompleksitas waktu O(n) berarti dibutuhkan sejumlah waktu linier untuk menyelesaikannya, dengan n adalah ukuran masukan. Algoritme dengan kompleksitas waktu O(n^2) membutuhkan waktu kuadrat untuk menghitungnya.
Kompleksitas ruang adalah ukuran jumlah memori yang dikonsumsi suatu algoritma. Kriteria memori untuk kompleksitas ruang mencakup kompleksitas ruang total (total memori yang digunakan pada akhir proses algoritma), kompleksitas ruang kerja (memori maksimum yang digunakan pada periode tertentu selama proses algoritma) dan kompleksitas ruang tambahan (ruang yang diperlukan oleh algoritma untuk menjalankannya). berfungsi salah). Mirip dengan kompleksitas waktu, kompleksitas ruang juga dinyatakan dalam notasi Big O.
Algoritme yang paling efisien adalah yang memanfaatkan ruang dan waktu yang diberikan untuk setiap tugas dengan sebaik-baiknya. Artinya algoritma dengan kompleksitas ruang dan waktu yang rendah akan mengungguli algoritma dengan kompleksitas ruang dan waktu yang tinggi untuk tugas tertentu. Efisiensi algoritma merupakan faktor penting dalam mengevaluasi seberapa baik kinerja suatu program atau aplikasi.