Selection Sort: Langkah dan Implementasi dalam Bahasa C

Selection sort merupakan salah satu metode pengurutan data dengan cara mencari nilail terkecil ke kanan, lalu jika sudah ditemukan ditukar/dipindah ke kiri. Selection sort memiliki kompleksitas O(n2) sehingga tidak akan efisien untuk data dengan jumlah yang besar.

Untuk lebih jelasnya, berikut merupakan proses pencaria data menggunakan selection sort :

• Langkah pengurutan

Proses 1

21520513257
Diberikan sebuah array 2,15,20,5,13,25,7 diurutka secara ascending
PembandingPosisi
2 < 150
2<200
2<50
2<130
2<250
2<70

Data ke-0 merupakan nilai minimum

21520513257
  • Proses 2
PembandingPosisi
15<201
15>5(tukar idx)3
5<133
5<253
5<73

Tukar data ke-1 (15) dengan data ke-3 (5)

25201513257
  • Proses 3
PembandingPosisi
20>15(tukar idx)3
15>13(tukar idx)4
13<254
13>7(tukar idx)6

Tukar data ke-3 (20) dengan data ke-6 (7)

25715132520
  • Proses 4
PembandingPosisi
15>13(tukar idx)4
13<254
13>204

Tukar data ke-3 (15) dengan data ke-4 (13)

25713152520
  • Proses 5
PembandingPosisi
15<25(tukar idx)  4
15>20  4

Tukar data ke-4 (15) dengan data ke-4 (15)

25713152520
  • Proses 6
PembandingPosisi
25>20(tukar idx)  6

Tukar data ke-5 (20) dengan data ke-6 ()

25713152025
Array setelah diurutkan

Notasi Algoritmik Selection Sort :

Algoritma selection sort

Implementasi dengan C:

#include <stdio.h>
void swap(int *xp, int *yp)
{
    int temp = *xp;
    *xp = *yp;
    *yp = temp;
}
void selectionSort(int arr[100], int n)
{
    int i,j,a,min_idx;
    for (i = 0; i < n-1; i++)
    {
        // Menggunakan elemen minimum pada array
        min_idx = i;
        for (j = i+1; j < n; j++)
            if (arr[j] < arr[min_idx])
                min_idx = j;
                // Tukar posisi elemen minimum array pada posisi array pertama
        swap(&arr[min_idx], &arr[i]);
        for(a = 0; a < n; a++){
            printf("%d ", arr[a]);
        }
        printf("\n");
    }
}

int main(){
    int arr[100];
    int n,a;
    //Input panjang array
    printf("Masukkan panjang array : ");
    scanf("%d", &n);
    //Input elemen array
    printf("Masukkan elemen array: \n");
    for(a = 0; a < n; a++){
        scanf("%d", &arr[a]);
    }
    //Array terurut
    printf("\nLangkah-langkah pengurutan : \n");
    selectionSort(arr,n);
    return 0;
}

Share Now:

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

Langganan

Subscribe To Our Newsletter

0
Would love your thoughts, please comment.x
()
x

Follow TikTok Kami @cahinfor

Pembahasan soal tahun 2023 sudah tersedia di TikTok Kami loh!