Langkah - langkah pengurutan seleksi
// asumsikan elemen pertama dalam array adalah elemen dengan angka terkecil, // simpan nilai dan indeks elemen tersebut ke dalam variabel sementara // dengan pengulangan // cek satu per satu elemen pada array apakah ada yang lebih kecil dari elemen pertama // jika iya, simpan nilai dan indeks elemen tersebut ke dalam variabel sementara // tukarkan elemen yang lebih kecil tersebut // dengan elemen pertama(paling kiri) dalam pengulangan // ulangi langkah-langkah tersebut hingga semua elemen terurut
Menerjemahkan algoritma tersebut ke bahasa C
// asumsikan elemen pertama dalam array adalah elemen dengan angka terkecil, // simpan nilai dan indeks elemen tersebut ke dalam variabel sementara int smallest = data[i]; int smallest_index = i;
// dengan pengulangan // cek satu per satu elemen pada array apakah ada yang lebih kecil dari elemen pertama for (int j = i; j < length; j++) { if (data[j] < smallest) { // jika iya, simpan nilai dan indeks elemen tersebut ke dalam variabel sementara smallest = data[j]; smallest_index = j; } }
// tukarkan elemen yang lebih kecil tersebut // dengan elemen pertama(paling kiri) dalam pengulangan int temp = data[i]; data[i] = smallest; data[smallest_index] = temp;
Fungsi jadi
void selection_sort(int data[], int length) { for (int i = 0; i < length; i++) { // asumsikan elemen pertama dalam array adalah elemen dengan angka terkecil, // simpan nilai dan indeks elemen tersebut ke dalam variabel sementara int smallest = data[i]; int smallest_index = i; // dengan pengulangan // cek satu per satu elemen pada array apakah ada yang lebih kecil dari elemen pertama for (int j = i; j < length; j++) { if (data[j] < smallest) { // jika iya, simpan nilai dan indeks elemen tersebut ke dalam variabel sementara smallest = data[j]; smallest_index = j; } } // tukarkan elemen yang lebih kecil tersebut // dengan elemen pertama(paling kiri) dalam pengulangan int temp = data[i]; data[i] = smallest; data[smallest_index] = temp; } // ulangi langkah-langkah tersebut hingga semua elemen terurut }
Program jadi
#include <stdio.h> void selection_sort(int data[], int length) { for (int i = 0; i < length; i++) { int smallest = data[i]; int smallest_index = i; for (int j = i; j < length; j++) { if (data[j] < smallest) { smallest = data[j]; smallest_index = j; } } int temp = data[i]; data[i] = smallest; data[smallest_index] = temp; } } int main() { int num; printf("Masukkan banyaknya data: "); scanf("%d", &num); int data[num]; for (int i = 0; i < num; i++) { printf("Data ke-%d: ", i); scanf("%d", &data[i]); } selection_sort(data, num); for (int i = 0; i < num; i++) { printf("%d ", data[i]); } return 0; }
1 comments:
Artikelnya bermanfaat kak, ini saya juga punya artikel tentang selection sort, semoga dapat saling melengkapi
ReplySelection Sort dalam Bahasa C (Materi + Koding)
Post a Comment