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]. */ }} 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]. */ }} 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]. */ }} 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]. */ }} 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]. */ }} Berhenti Data Terakhir

8 /* Fungsi-fungsi pada Selection Sort */ #include #define Maxint 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 Pola Pergerakan Elemen Pada Putaran Kedua

11 Pola Pergerakan Elemen Pada Putaran Ketiga 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