Sunday, November 29, 2015

Selection Sort

Selection Sort adalah salah satu teknik mengurutkan data.

Kelebihan: Algoritmanya cukup sederhana dan mudah diimplementasikan
Kekurangan: Tidak efektif jika mengurutkan data yang banyak

Kompleksitas: O(n^2)

Animasi visualnya dapat dilihat di visualgo.net/sorting.html
Penjelasan lebih lanjut dapat dilihat di en.wikipedia.org/wiki/Selection_sort

Berikut code dan implementasinya dalam bahasa pemrograman C.

#include <stdio.h>

int main()
{   int N, i;

    // Input jumlah test case
    scanf("%d", &N);
  
    // Input Data
    int arr[N];
    for(i = 0;i < N;i++)
        scanf("%d", &arr[i]);
       
    //Selection Sort
    int j, akhir = N-1, indeks, tmp;
   
    for(i = 0;i < akhir;i++)
    {
        indeks = i;
        for(j = i+1;j < N;j++)
            if(arr[indeks] > arr[j])
                indeks = j;
       
        if(indeks != i) // Switch data
        {
            tmp = arr[i];
            arr[i] = arr[indeks];
            arr[indeks] = tmp;
        }
    }

    // Output
    printf("%d", arr[0]);
    for(i = 1;i < N;i++)   
        printf(" %d", arr[i]);
}

Contoh test case:
7
7 5 3 1 6 4 2

Contoh output:
1 2 3 4 5 6 7

No comments:

Post a Comment