Pengurutan Data: Contoh Program Selection Sort Bahasa C Yang Efisien

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

AlgoritmaKompleksitas WaktuStabilitas
Selection SortO(n^2)Stabil
Bubble SortO(n^2)Tidak Stabil
Insertion SortO(n^2)Stabil
Merge SortO(n log n)Stabil
Quick SortO(n log n)Tidak Stabil

Posting Komentar untuk "Pengurutan Data: Contoh Program Selection Sort Bahasa C Yang Efisien"