Habil - M11-Bubble Dan Shell Sort [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

M11 – Bubble dan Shell Sort ALGORITMA DAN STRUKTUR DATA



Nama : Habil Kelas : 1 D4 Teknik Informatika B NRP : 3120600055



PROGRAM STUDI TEKNIK INFORMATIKA DEPARTEMEN TEKNIK INFORMATIKA dan KOMPUTER



POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 2020/2021



1. A. Implementasikan algoritma metode a. BUBBLE SORT b. SHELL SORT dengan data array of int berjumlah 10 elemen. Elemen dalam array tidak diinputkan, namun diinisialisasi di awal. Tampilkan hasil per iterasi dan lakukan pengurutan secara ascending. B. Tambahkan perhitungan total jumlah pembandingan (comparison = C), jumlah penukaran (swapping = S) dan jumlah pergeseran (movement = M) pada setiap fungsi pengurutan data yang sudah dibuat dan tampilkan nilai C, S dan M untuk setiap metode. Listing Code #include #include #include int n=10; void bubble_sort(int[],int n); void shell_sort(int[],int n); void tampil(int[],int n); int main() { while(1) { int bilangan[10] = {0,18,6,26,19,15,11,29,26,24}; int opt; printf("Menu Sorting\n"); printf("1. Bubble Sort\n"); printf("2. Shell Sort\n"); printf("3. Keluar\n"); printf("Pilihan anda = "); scanf("%d",&opt); switch(opt) { case 1: tampil(bilangan,n); bubble_sort(bilangan,n); tampil(bilangan,n); puts(" "); break; case 2: tampil(bilangan,n); shell_sort(bilangan,n); tampil(bilangan,n); puts(" "); break; default: exit(0); } } return 0; } void bubble_sort(int a[n],int n) {



bool tertukar; int i,j,tukar,C,S,M; C=0; S=0; M=0; tertukar = true; for(i=0;i1){ jarak = jarak/2; tertukar=true; printf("K = %d\n",jarak); while(tertukar==true){ tertukar=false; i=0; while(ia[i+jarak]){ tukar=a[i]; a[i]=a[i+jarak]; a[i+jarak]=tukar; tertukar=true; tampil(a,n); S++; M+=3; } i++;



} } } printf("Nilai perbandingannya adalah %d\n",C); printf("Nilai penukaran adalah %d\n",S); printf("Nilai pergeseran adalah %d\n",M); } void tampil(int a[n],int n) { int i; for(i=0;i= 20000 yang digenerate secara random. Tambahkan perhitungan waktu komputasinya. Tambahkan fungsi mode_urut() untuk memilih menu pengurutan secara ascending ataukah descending. Buatlah fungsi generate_random() untuk mengenerate sejumlah bilangan random. Gunakan header math.h fungsi rand() dan srand().



Listing Code #include #include #include #include #include int n=100000; void bubble_sort(int[],int n); void shell_sort(int[],int n); void tampil(int[],int n); void generate(int[]); void copy_arr(int[],int[]); int modeUrut(); time_t t1,t2; long int waktukomputasi; int main() { int A[n],B[n]; printf("Isi berapa data ? "); scanf("%d",&n); srand(time(NULL)); generate(A); tampil(A,n); copy_arr(A,B); while(1) { copy_arr(B,A); int opt; printf("Menu Sorting\n"); printf("1. Bubble Sort\n"); printf("2. Shell Sort\n"); printf("3. Keluar\n"); printf("Pilihan anda = "); scanf("%d",&opt); switch(opt) { case 1: time(&t1); bubble_sort(A,n); time(&t2); waktukomputasi=t2-t1; tampil(A,n); printf("Durasinya adalah %ld\n",waktukomputasi); puts(" "); break; case 2: time(&t1); shell_sort(A,n); time(&t2); waktukomputasi=t2-t1; tampil(A,n); printf("Durasinya adalah %ld\n",waktukomputasi); puts(" "); break; default:



exit(0); } } return 0; } void bubble_sort(int a[n],int n) { bool tertukar; int i,j,tukar,C,S,M; C=0; S=0; M=0; tertukar = true; if(modeUrut()==1){ for(i=0;i