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:
- Tampilkan hasil program setelah dijalankan
- 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:
- Tampilkan hasil program setelah dijalankan
- Pahami cara kerja program tersebut (manfaatkan teknik debug) dan jelaskan konsep insertion sort pada coding tersebut kepada Instruktur/Dosen [100]