Laporan Praktikum Struktur Data Modul 20 – SORTING: INSERTION SORT DAN MERGE SORT

TUJUAN

Mahasiswa mampu menerapkan Sorting: Insertion Sort dan Merge Sort

Percobaan 1: Insertion sort dengan Array

 

Salin dan jalankan coding berikut ini kemudian beri komentar pada setiap baris coding.

int main()

{

    int total_data, data[1000], i, j, k, buffer;




    printf("Masukkan total data yang akan diurutkan: ");

    scanf("%d", &total_data);




    for(i=0;i<total_data;i++)

    {

        printf("Masukkan data ke-%d: ",i+1);

        scanf("%d", &data[i]);

    }




    printf("\n\nK-0\t");

    for(k=0;k<=total_data-1;k++)

    {

        printf("%d\t", data[k]);

    }

    printf("\n");




    for(i=1;i<=total_data-1;i++)

    {

        j=i;

        while(j>0 && data[j]<data[j-1])

        {

            buffer=data[j];

            data[j]=data[j-1];

            data[j-1]=buffer;

            j--;

        }




        printf("K-%d\t",i);

        for(k=0;k<=total_data-1;k++)

        {

            printf("%d\t", data[k]);

        }

        printf("\n");

    }

}

Berdasarkan coding tersebut, lakukan hal berikut ini:

  1. Tampilkan hasil program setelah dijalankan
  2. Pahami cara kerja program tersebut (manfaatkan teknik debug) dan jelaskan konsep insertion sort pada coding tersebut kepada Instruktur/Dosen [100]

 

Percobaan 2: Merge sort dengan Array

 

Salin dan jalankan coding berikut ini kemudian beri komentar pada setiap baris coding.

#include <stdio.h>

#define max 4




int data[4]={27, 11, 19, 2};

int buffer[4];




void merge(int kiri,int tengah,int kanan)

{

    int i,j,k;




    for(j=kiri,k=tengah+1,i=kiri;j<=tengah && k<=kanan;i++)

    {

        if(data[j]<=data[k])

            buffer[i]=data[j++];

        else

            buffer[i]=data[k++];

    }




    while(j<=tengah)

        buffer[i++]=data[j++];




    while(k<=kanan)

        buffer[i++]=data[k++];




    for(i=kiri;i<=kanan;i++)

        data[i]=buffer[i];

}




void sort(int kiri, int kanan) {

    int tengah;




    if(kiri<kanan)

    {

        tengah=(kiri+kanan)/2;

        sort(kiri,tengah);

        sort(tengah+1,kanan);

        merge(kiri,tengah,kanan);

    }

    else

    {

        return;

    }

}


 

 

 

 

main()

{

    int i;




    printf("K-0   ");

    for(i=0;i<max;i++)

    {

        printf("%d   ",data[i]);

    }




    sort(0, max);




    printf("\n\nHasil akhir  ");

    for(i=0;i<max;i++)

    {

        printf("%d   ",data[i]);

    }

}

Berdasarkan coding tersebut, lakukan hal berikut ini:

  1. Tampilkan hasil program setelah dijalankan
  2. Pahami cara kerja program tersebut (manfaatkan teknik debug) dan jelaskan konsep insertion sort pada coding tersebut kepada Instruktur/Dosen [100]
Share Button

Diterbitkan oleh

Rinaldo Jonathan

Admin of this site. Artis papan PCB. #zoneRinaldo #Controllerism Studio Demon, Stage Angel, Sleepy Developer, Smoke free. Kalkud SHS 2012, PCR G15.

Tinggalkan Balasan