6 0 345 KB
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