Insertion Sort
1. Metode Insertion Sort Mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu diambil dan disisipkan (insert) ke tempat yang seharusnya. Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya. Pada penyisipan elemen, maka elemen-elemen lain akan bergeser ke belakang
2. Algoritma untuk Metode Insertion Sort SUBRUTIN selection_sort (L,n) UNTUK k <-- 1 S/D n-1 X <--L[k] //Sisipkan x ke dalam L[0..k-1] I<-- k 1 Ketemu <-- SALAH ULANG SEMUA I >= 0 DAN TIDAK ketemu JIKA x < L[I] MAKA L[i + 1] <-- L[i] i <--i 1 SEBALIKNYA Ketemu = BENAR AKHIR JIKA L[i+1]<--x AKHIR ULANG AKHIR UNTUK AKHIR SUBRUTIN
3. Program untuk Metode Insertion Sort #include <iostream.h> #include <conio.h> void tampilkan_larik(int data[],int n) { int i; for (i=0; i<n;i++) cout<<data[i]<<" "; cout<<"\n"; } void insertion_sort(int data[], int n) { int i,k; int x; int ketemu; for (k=1; k<n; k++) { x=data[k]; //sisipkan x ke dalam data [0...k-1] i=k-1; ketemu=0;
while ((i>=0)&&(!ketemu)) { if (x<data[i]) { data[i+1]=data[i]; i=i-1; } else ketemu=1; data[i+1]=x; } } } int main() { const jum_data=8; int i; int data[]={25,57,48,37,12,92,80,33}; cout<<"Data sebelum diurut: "<<endl; for(int ctr=0; ctr<8; ctr++) { cout<<data[ctr]<<" "; } insertion_sort(data, jum_data); //hasil pengurutan cout<<endl; cout<<endl; cout<<"Tampilkan Hasil Pengurutan: \n"; tampilkan_larik(data,jum_data); getch(); }