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

2 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

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

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

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

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

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

8 /* Fungsi-fungsi pada Selection Sort */ #include #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; }

9 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]); printf(“\n”); }

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

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

12 void Bubble(int *DataArr, int n) { int i,j; for (i=1; i=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.

13 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]); urut = 0; } i = i + 1; } Latihan : 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