Agoritma Sorting
Algoritma Sorting digunakan untuk menyusun elemen-elemen dalam sebuah array atau daftar dalam urutan tertentu. Sebagai contoh,
Di sini, kita sedang mengurutkan array secara menaik.
Terdapat berbagai algoritma Sorting yang dapat digunakan untuk menyelesaikan operasi ini. Dan, kita dapat menggunakan algoritma mana pun berdasarkan kebutuhan.
Berbagai Algoritma Sorting:
- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Quicksort
- Counting Sort
- Radix Sort
- Bucket Sort
- Heap Sort
- Shell Sort
Kompleksitas Algoritma Sorting
Efisiensi dari setiap algoritma Sorting ditentukan oleh kompleksitas waktu dan kompleksitas ruang dari algoritma tersebut.
1. Kompleksitas Waktu: Kompleksitas waktu merujuk pada waktu yang dibutuhkan oleh suatu algoritma untuk menyelesaikan eksekusinya sehubungan dengan ukuran input. Ini dapat direpresentasikan dalam bentuk berbagai notasi:
- Notasi Big-O (O)
- Notasi Omega (Ω)
- Notasi Theta (Θ)
2. Kompleksitas Ruang: Kompleksitas ruang merujuk pada jumlah total memori yang digunakan oleh algoritma untuk eksekusi lengkap. Ini mencakup baik memori tambahan maupun input.
Memori tambahan adalah ruang tambahan yang diambil oleh algoritma selain dari data input. Biasanya, memori tambahan dianggap saat menghitung kompleksitas ruang suatu algoritma.
Stabilitas Algoritma Sorting
Sebuah algoritma Sorting dianggap stabil jika dua atau lebih item dengan nilai yang sama tetap mempertahankan posisi relatif yang sama bahkan setelah diurutkan.
Sebagai contoh, dalam gambar di bawah, terdapat dua item dengan nilai yang sama, yaitu 3. Algoritma Sorting yang tidak stabil memungkinkan dua kemungkinan di mana dua posisi 3 dapat atau tidak dipertahankan.
Namun, setelah menggunakan algoritma Sorting yang stabil, selalu ada satu kemungkinan di mana posisi tetap sama seperti dalam array asli.
Komentar
Posting Komentar