Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Pengurutan (Sorting) Diperlukan untuk mempercepat pencaharian suatu target dalam suatu daftar (list). Jenis Pengurutan:  Ascending Pengurutan dilakukan.

Presentasi serupa


Presentasi berjudul: "Pengurutan (Sorting) Diperlukan untuk mempercepat pencaharian suatu target dalam suatu daftar (list). Jenis Pengurutan:  Ascending Pengurutan dilakukan."— Transcript presentasi:

1 Pengurutan (Sorting) Diperlukan untuk mempercepat pencaharian suatu target dalam suatu daftar (list). Jenis Pengurutan:  Ascending Pengurutan dilakukan mulai dari nilai terkecil menuju nilai terbesar  Descending Pengurutan dilakukan mulai dari nilai terbesar menuju nilai terkecil. Teknik Pengurutan:  Sederhana :  Lanjut :  Selection sort  Quick Sort  Bubble sort  Merge Sort  Insertion sort

2 519 419 127 69 381 Selection: Algoritma:
for(i=0; i<=N-2;i++){ /* N=Banyak data dlm daftar */ for(j=i;j<=N-1;j++){ /* Tentukan index dari data terkecil antara A[j] s/d A[N-1], dan simpan di variabel k. Kemudian tukar A[i] dengan A[k]. */ } 519 Data Pertama Baca Data 419 Tukarkan 127 69 Data Terkecil 381

3 519 519 69 419 419 127 127 69 519 381 381 Selection: Algoritma:
for(i=0; i<=N-2;i++){ /* N=Banyak data dlm daftar */ for(j=i;j<=N-1;j++){ /* Tentukan index dari data terkecil antara A[j] s/d A[N-1], dan simpan di variabel k. Kemudian tukar A[i] dengan A[k]. */ } 519 519 69 419 419 Data Pertama Baca Data Tukarkan 127 127 Data Terkecil 69 519 381 381

4 Selection: Algoritma: for(i=0; i<=N-2;i++){ /* N=Banyak data dlm daftar */ for(j=i;j<=N-1;j++){ /* Tentukan index dari data terkecil antara A[j] s/d A[N-1], dan simpan di variabel k. Kemudian tukar A[i] dengan A[k]. */ } 519 69 69 419 419 127 127 127 419 Data Pertama Baca Data 69 519 519 Tukarkan 381 381 381 Data Terkecil

5 Selection: Algoritma: for(i=0; i<=N-2;i++){ /* N=Banyak data dlm daftar */ for(j=i;j<=N-1;j++){ /* Tentukan index dari data terkecil antara A[j] s/d A[N-1], dan simpan di variabel k. Kemudian tukar A[i] dengan A[k]. */ } 519 69 69 69 419 419 127 127 127 127 419 381 69 519 519 519 Data Pertama Baca Data Tukarkan 381 381 381 419 Data Terkecil

6 Selection: Algoritma: for(i=0; i<=N-2;i++){ /* N=Banyak data dlm daftar */ for(j=i;j<=N-1;j++){ /* Tentukan index dari data terkecil antara A[j] s/d A[N-1], dan simpan di variabel k. Kemudian tukar A[i] dengan A[k]. */ } 519 69 69 69 69 419 419 127 127 127 127 127 419 381 381 69 519 519 519 419 381 381 381 419 519 Data Terakhir Berhenti

7 /* Fungsi-fungsi pada Selection Sort */
#include <stdio.h> #define Maxint 32767 void Cari_Min(int *Arr, int mulai, int akhir,int *k) { int min,i; min = Maxint; for (i=mulai; i<=akhir;i++){ if (Arr[i] < min){ min = Arr[i]; *k = i; } void Tukar(int *x, int *y) { int z ; z = *x; *x = *y; *y = z;

8 void Selection(int *Arr, int n)
{ int i,k; for(i=0;i<=n-2;i++){ Cari_Min(Arr,i,n-1,&k); Tukar(&Arr[i],&Arr[k]); } /* Program Utama */ void main() int DataArr[] = {519,419,127,69,381}; int i;   for(i=0; i<5; i++) printf(“%d ”,DataArr[i]); printf(“\n”); Selection(DataArr,5); for(i=0; i<5; i++) printf(“%d ”,DataArr[i]);

9 Bubble (Exchange) 519 419 Pola Pergerakan Elemen Pada Putaran Pertama
127 69 381 Pola Pergerakan Elemen Pada Putaran Pertama 519 419 127 381 69 Pola Pergerakan Elemen Pada Putaran Kedua

10 Pola Pergerakan Elemen Pada Putaran Ketiga
69 69 69 127 127 127 519 519 381 419 381 519 381 419 419 69 127 381 519 419 69 127 381 419 519 Putaran Keempat Terakhir

11 void Bubble(int *DataArr, int n)
{ int i,j; for (i=1; i<n; i++) for (j=n-1; j>=i; j--) if (DataArr[j-1] > DataArr[j]) Tukar(&DataArr[j-1],&DataArr[j]); } Bila data telah terurut, procedure diatas berlaku ‘bodoh’, yaitu tetap melakukan pembandingan. Perbaikan secara sederhana, yaitu menambah : ‘flag’ yang memberitahu, bila pada suatu putaran data telah terurut.

12 Latihan : Buat main program untuk memanggil fungsi buble_flag diatas.
void Bubble_Flag(int *Arr, int n) { int i,j; int urut; /* Flag */ urut = 0; i = 1; while ((i < n) && (!urut)) { urut = 1; for (j=n-1; j>=i; j--) { if (Arr[j-1] > Arr[j]){ Tukar (&Arr[j-1], &Arr[j]); } i = i + 1; Latihan : Buat main program untuk memanggil fungsi buble_flag diatas.


Download ppt "Pengurutan (Sorting) Diperlukan untuk mempercepat pencaharian suatu target dalam suatu daftar (list). Jenis Pengurutan:  Ascending Pengurutan dilakukan."

Presentasi serupa


Iklan oleh Google