Pengurutan
(Sorting) adalah proses menyusun kembali data yang sebelumnya telah disusun
dengan suatu pola tertentu, sehingga tersusun secara teratur menurut aturan
tertentu.
Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut turun).
Ada bermacam – macam metode pengurutan data seperti : Bubble sort, exchange sort, Selection sort, heap sort, Insertion sort, tree sort, Quick sort, merge sort,dan Shell sort (pengembangan insertion). Disini saya akan menggunakan metode Selection Sort.
Selection sort merupakan cara mengurutkan dengan membandingkan elemen yang sekarang dengan elemen yang berikutnya sampai dengan elemen yang terakhir.
Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut turun).
Ada bermacam – macam metode pengurutan data seperti : Bubble sort, exchange sort, Selection sort, heap sort, Insertion sort, tree sort, Quick sort, merge sort,dan Shell sort (pengembangan insertion). Disini saya akan menggunakan metode Selection Sort.
Selection sort merupakan cara mengurutkan dengan membandingkan elemen yang sekarang dengan elemen yang berikutnya sampai dengan elemen yang terakhir.
Berikut contoh codingnya :
#include "conio.h"
#include "stdio.h"
int main() {
int i, j, iMin;
int n, Urut;
int Tmp, code;
int Arr[100];
do {
printf("=====================================\n");
printf("| Pilihan Program Sorting |\n");
printf("=====================================\n");
printf("| 1. Selection Sorting (Ascending) |\n");
printf("| 2. Selection Sorting (Descending) |\n");
printf("| 3. Keluar . . . |\n");
printf("=====================================\n\n");
printf("Masukan Pilihan Anda : ");
scanf("%d", &code);
switch (code) {
case 1 :
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
Urut = 1;
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 0; i < n - 1; i++) {
iMin = i;
for(j = Urut; j < n; j++) {
if(Arr[j] < Arr[iMin]) {
iMin = j;
if(Arr[i] != Arr[iMin]) {
Tmp = Arr[i];
if(Arr[i] > Arr[iMin]) {
Arr[i] = Arr[iMin];
Arr[iMin] = Tmp;
}
}
}
}
Urut = Urut + 1;
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch();
break;
case 2 :
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
Urut = 1;
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 0; i < n - 1; i++) {
iMin = i;
for(j = Urut; j < n; j++) {
if(Arr[j] > Arr[iMin]) {
iMin = j;
if(Arr[i] != Arr[iMin]) {
Tmp = Arr[i];
if(Arr[i] < Arr[iMin]) {
Arr[i] = Arr[iMin];
Arr[iMin] = Tmp;
}
}
}
}
Urut = Urut + 1;
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch();
break;
default : {
printf("\nSilahkan Tekan Enter Untuk Keluar . . . "); }}
} while(code >=1 && code <= 2);
getch();
}
#include "stdio.h"
int main() {
int i, j, iMin;
int n, Urut;
int Tmp, code;
int Arr[100];
do {
printf("=====================================\n");
printf("| Pilihan Program Sorting |\n");
printf("=====================================\n");
printf("| 1. Selection Sorting (Ascending) |\n");
printf("| 2. Selection Sorting (Descending) |\n");
printf("| 3. Keluar . . . |\n");
printf("=====================================\n\n");
printf("Masukan Pilihan Anda : ");
scanf("%d", &code);
switch (code) {
case 1 :
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
Urut = 1;
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 0; i < n - 1; i++) {
iMin = i;
for(j = Urut; j < n; j++) {
if(Arr[j] < Arr[iMin]) {
iMin = j;
if(Arr[i] != Arr[iMin]) {
Tmp = Arr[i];
if(Arr[i] > Arr[iMin]) {
Arr[i] = Arr[iMin];
Arr[iMin] = Tmp;
}
}
}
}
Urut = Urut + 1;
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch();
break;
case 2 :
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
Urut = 1;
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 0; i < n - 1; i++) {
iMin = i;
for(j = Urut; j < n; j++) {
if(Arr[j] > Arr[iMin]) {
iMin = j;
if(Arr[i] != Arr[iMin]) {
Tmp = Arr[i];
if(Arr[i] < Arr[iMin]) {
Arr[i] = Arr[iMin];
Arr[iMin] = Tmp;
}
}
}
}
Urut = Urut + 1;
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch();
break;
default : {
printf("\nSilahkan Tekan Enter Untuk Keluar . . . "); }}
} while(code >=1 && code <= 2);
getch();
}
Selamat mencoba :)
0 komentar:
Posting Komentar