Tutorial membuat pengurutan dengan Insertion Sort dalam Bahasa C
Selanjutnya dalam tutorial sorting kali ini akan membahas contoh program pengurutan atau sorting dengan cara Insertion Sort.
Definisi Insertion sendiri yaitu membandingkan tiap item dari sisi kiri atau awal dengan sisi kanan nya. Selanjutnya contoh ilustrasi Insertion Sort :
Seperti biasa kita membuat Headernya terlebih dahulu.
Kemudian selanjutnya membuat variabelnya, yang kita butuh kan yaitu :
int arr[max], i, j, t;
Setelah itu kita buat program inti nya yaitu :
for ( i = 0 ; i < max ; i++ ) //meminta memasukkan angka hingga nilai max, max=5
{
printf("Masukkan Angka : \t");
scanf("%d", &arr[i]);
}
for (i = 1 ; i <= max - 1; i++)//angka-angka tadi di panggil hingga nilai max
{
j = i; //kemudian nilai j = nilai i, variabel j memiliki angka dari variabel i
while ( j > 0 && arr[j] < arr[j-1]) /
{
t = arr[j];
arr[j] = arr[j-1];
arr[j-1] = t;
j--;
}
}
printf("Data yang terurut secara Ascending:\n");
for (i = 0; i <= max - 1; i++)
printf("\t\t\t\t\t%d\n", arr[i]);
getch();
goto menu;
Kemudian inilah contoh program akhirnya :
#include <stdio.h>
#include <conio.h>
#define max 5
#define total 10
main()
{
int sorting;
menu:
printf("-----------Sorting's Menu------------\n");
printf("\n1.\tInsertion Sort Asc\n2.\tInsertion Sort Desc\n");
printf("3.\tKeluar dari menu ini\n");
printf("\n-----Created By : @irfancheinID------\n");
printf("Pilih Menu\t: \t");scanf("%d", &sorting);
switch(sorting)
{
case 1 :
{
int arr[max], i, j, t;
for ( i = 0 ; i < max ; i++ )
{
printf("Masukkan Angka : \t");
scanf("%d", &arr[i]);
}
for (i = 1 ; i <= max - 1; i++)
{
j = i;
while ( j > 0 && arr[j] < arr[j-1])
{
t = arr[j];
arr[j] = arr[j-1];
arr[j-1] = t;
j--;
}
}
printf("Data yang terurut secara Ascending:\n");
for (i = 0; i <= max - 1; i++)
printf("\t\t\t\t\t%d\n", arr[i]);
getch();
goto menu;
}
case 2:
{
int arr[max], i, j, t;
for ( i = 0 ; i < max ; i++ )
{
printf("Masukkan Angka : \t");
scanf("%d", &arr[i]);
}
for (i = 1 ; i <= max - 1; i++)
{
j = i;
while ( j > 0 && arr[j] > arr[j-1])
{
t = arr[j];
arr[j] = arr[j-1];
arr[j-1] = t;
j--;
}
}
printf("Data yang terurut secara Descending:\n");
for (i = 0; i <= max - 1; i++)
printf("\t\t\t\t\t%d\n", arr[i]);
getch();
goto menu;
}
case 3:
{
return 0;
}
default:
printf("\n\tTidak Ada dalam Pilihan\n\t Silahkan Coba Kembali\n");
goto menu;
}
}
Nah ini hasilnya gan :