Pengurutan Data: Panduan Komprehensif dengan Contoh Program Selection Sort Bahasa C yang Efisien
Pendahuluan
Pengurutan data merupakan proses penting dalam ilmu komputer yang melibatkan pengaturan elemen data dalam urutan tertentu, seperti urutan menaik atau menurun. Pengurutan data memiliki berbagai aplikasi, termasuk pencarian data yang efisien, analisis data, dan pemrosesan gambar.
Algoritma Pengurutan
Terdapat berbagai algoritma pengurutan yang dapat digunakan, masing-masing dengan kelebihan dan kekurangannya sendiri. Salah satu algoritma pengurutan yang paling sederhana dan efisien adalah Selection Sort.
Selection Sort
Selection Sort adalah algoritma pengurutan yang bekerja dengan cara mengulangi array data dan menemukan elemen terkecil atau terbesar (tergantung pada urutan yang diinginkan). Elemen terkecil atau terbesar kemudian ditukar dengan elemen pertama dalam array. Proses ini diulangi hingga seluruh array terurut.
Contoh Program Selection Sort Bahasa C
Berikut adalah contoh program Selection Sort dalam bahasa C:
#include <stdio.h>void selectionSort(int arr[], int n) { int i, j, min_idx; // Loop melalui seluruh array for (i = 0; i < n-1; i++) { // Inisialisasi indeks minimum sebagai indeks saat ini min_idx = i; // Temukan indeks elemen terkecil di subarray yang belum diurutkan for (j = i+1; j < n; j++) { if (arr[j] < arr[min_idx]) { min_idx = j; } } // Tukar elemen terkecil dengan elemen pertama dalam subarray yang belum diurutkan int temp = arr[min_idx]; arr[min_idx] = arr[i]; arr[i] = temp; }}int main() { int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]); selectionSort(arr, n); printf("Array yang telah diurutkan: "); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } return 0;}
Analisis Kompleksitas
Kompleksitas waktu algoritma Selection Sort adalah O(n^2), di mana n adalah jumlah elemen dalam array. Hal ini karena algoritma perlu mengulangi array sebanyak n kali untuk menemukan elemen terkecil atau terbesar, dan melakukan pertukaran sebanyak n-1 kali.
Kelebihan dan Kekurangan Selection Sort
Kelebihan:
- Sederhana dan mudah diimplementasikan
- Stabil, artinya elemen dengan nilai yang sama mempertahankan urutan relatifnya
- Berfungsi dengan baik untuk array kecil
Kekurangan:
- Tidak efisien untuk array besar
- Kompleksitas waktu yang tinggi (O(n^2))
Kesimpulan
Selection Sort adalah algoritma pengurutan yang sederhana dan efisien yang dapat digunakan untuk mengurutkan array kecil. Namun, untuk array besar, algoritma pengurutan yang lebih efisien, seperti Merge Sort atau Quick Sort, lebih disarankan.
Diagram Perbandingan Algoritma Pengurutan
Algoritma | Kompleksitas Waktu | Stabilitas |
---|---|---|
Selection Sort | O(n^2) | Stabil |
Bubble Sort | O(n^2) | Tidak Stabil |
Insertion Sort | O(n^2) | Stabil |
Merge Sort | O(n log n) | Stabil |
Quick Sort | O(n log n) | Tidak Stabil |
Posting Komentar untuk "Pengurutan Data: Contoh Program Selection Sort Bahasa C Yang Efisien"