Proses pengurutan dengan metode penyisipan langsung dapat dijelaskan sebagai berikut :
Data
dicek satu per satu mulai dari yang kedua sampai dengan yang terakhir.
Apabila ditemukan data yang lebih kecil daripada data sebelumnya, maka
data tersebut disisipkan pada posisi yang sesuai.
Akan lebih mudah apabila membayangkan pengurutan kartu. Pertama-tama
anda meletakkan kartu-kartu tersebut di atas meja, kemudian melihatnya
dari kiri ke kanan. Apabila kartu di sebelah kanan lebih kecil daripada
kartu di sebelah kiri, maka ambil
kartu tersebut dan sisipkan di tempat yang sesuai.
oke sobat langsung saja ke listing programnya ...
#include
<stdio.h>
#include
<stdlib.h>
#define
MAX 11
int
Data[MAX];
//
Fungsi pengurutan penyisipan langsung
void StraightInsertSort()
{
int i,j,x;
for(i=1; i<MAX; i++){
x = Data[i];
j = i - 1;
while (x < Data[j]){
Data[j+1] =
Data[j];
j--;
}
Data[j+1] = x;
}
}
int
main()
{
int i;
srand(3);
// Membangkitkan bilangan acak
printf("DATA SEBELUM
TERURUT"); for(i=1; i<MAX; i++)
{
Data[i] = rand()/1000+1;
printf("\nData ke
%d : %d ", i, Data[i]);
}
StraightInsertSort();
// Data setelah terurut
printf("\n\nDATA SETELAH
TERURUT"); for(i=1; i<MAX; i++)
{
printf("\nData
ke %i : %i ", i, Data[i]);
}
return(0);
}
hasilnya akan tampak seperti pada gambar dibawah ini :
sampai jumpa sobatku semua di artikel selanjutnya...
semoga sukses..
Artikelnyya bermanfaat kak, ini saya juga punya artikel tentang Insertion Sort, semoga dapat saling melengkapi
ReplyDeleteInsertion Sort dalam Bahasa C (Materi + Koding)
tengkyu
ReplyDelete