Algoritma Sorting (Selection Insertion)
Algoritma Insertion Sort Dengan Algoritma Insertion bagian kiri array terurut sampai seluruh array Misal pada data array ke-k, data tersebut akan disisipkan pada indeks sebelum k, sesuai dengan urutannya. Proses ini dilakukan berulang-ulang sehingga seluruh data terurut
Algoritma Insertion Sort 1. i 1 2. selama (i < N) kerjakan baris 3 sampai dgn 9 3. key A[i] 4. j i 1 5. selama j >= dan (A[j] > key) kerjakan baris 6 dan 7 6. A[j + 1] A[j] 7. j j 1 8. A[j+1] key 9. i i + 1 M = Move M = Move C = Comparison
Proses Insertion Sort 3 4 6 8 9 7 2 1 5 Nilai yang paling kiri (3) terurut terhadap dirinya sendiri. Sehingga kita tidak perlu melakukan apa-apa
3 4 6 8 9 7 2 1 5 3 4 6 8 9 7 2 1 5 Key = Cek apakah nilai pada indek ke-2 () lebih kecil dari indek ke-1 (3). Jika ya maka tukar. Kondisi diatas maka data tidak perlu diswap
3 4 6 8 9 7 2 1 5 Dua data pertama sudah terurut 3 4 6 8 9 7 2 1 5 Selanjutnya menyisipkan 4 di daerah abuabu sehingga setelah penyisipan daerah abu-abu menjadi urut.
Simpan nilai yang akan diurutkan dalam variabel key Key = 4 C 4 C = Comparison 3 6 8 9 7 2 1 5 Nilai digeser pada indek ke-3 M 4 M = Move 3 6 8 9 7 2 1 5 Sisipkan 4 pada posisi yang tepat 3 4 6 8 9 7 2 1 5
Sekarang 3 data pertama sudah terurut secara relatif dan sisipkan data ke-4 ke daerah abu-abu. 4 Data pertama sudah terurut secara relatif 3 4 6 8 9 7 2 1 5 Ulangi Proses ini sampai data terurut semuanya. 3 4 6 8 9 7 2 1 5 3 4 6 8 9 7 2 1 5
7 3 4 6 2 1 5 8 9 3 4 6 7 8 9 2 1 5 2 3 4 6 7 8 9 1 5 1 2 3 4 6 7 8 9 5 1 2 3 4 5 6 7 8 9
Analisa Insertion Sort Basic Operation (Operasi Dasar) terdapat pada perbandingan key (A[j] > key)
Analisa Insertion Sort Best Case - Array sudah dalam keadaan terurut naik - Data ke-k yang akan diurutkan dibandingkan sebanyak satu kali dengan data ke- (k-1) - Loop terdalam tidak pernah dieksekusi - Jumlah pergeseran (movement) M = - Jumlah pembandingan key (comparison) C = n 1
Worst Case: - Array dalam urutan kebalikannya - Loop terdalam dieksekusi sebanyak p-1 kali, untuk p = 2,3,..,n - Jumlah pergeseran M = (n-1) + (1 + 2 +.. + n-1) M = (n-1) + n * ( n-1)/2 - Jumlah pembandingan key C = (1 + 2 +.. + n-1) = n * (n-1) / 2
Selection Sort
Algoritma Selection Sort 1. i 2. selama (i < N-1) kerjakan baris 3 sampai dengan 11 3. min i 4. j i + 1 5. Selama (j < N) kerjakan baris 6 dan 7 6. Jika (A[j] < A[min]) maka min j 7. j j + 1 8. temp = A[i] 9. A[i] = A[min]. A[min] = temp 11. i i + 1
Selection Sort Algorithm Perbandingan diawali pada dat indeks ke-. Dibandingkan dengan data sesudahnya untuk mencari elemen yang paling kecil (menggunakan indeks data) 7 4 2 Min = j = 1 45 21 (A[j] < A[min])? min j 52 61 [1] [2] [3] [4] [5] [6] [] [1] [2] [3] [4] [5] Slide copyright Pearson Education 22 15 9 15
Selection Sort Algorithm 1 Data ke- dibandingkan dengan data ke-1. Ternyata data min pada indeks ke-1 (min=1) 7 4 2 Min = j = 1 45 21 21 < 45 min = 1 52 61 [1] [2] [3] [4] [5] [6] [] [1] [2] [3] [4] [5] 9 15 Slide copyright Pearson Education 22 16
Selection Sort Algorithm 2 Data ke1 dibandingkan dengan Data ke-2. Nilai yang paling kecil tetap pada data indeks ke- 1 7 4 2 Min = 1 j = 2 45 21 52 < 21 min = 1 52 61 9 15 [1] [2] [3] [4] [5] [6] [] [1] [2] [3] [4] [5] Slide copyright Pearson Education 22 17
Selection Sort Algorithm 3 Data ke1 dibandingkan dengan Data ke-3 7 Min = 1 j = 3 45 61 < 21 min = 1 52 61 4 2 21 9 15 [1] [2] [3] [4] [5] [6] [] [1] [2] [3] [4] [5] Slide copyright Pearson Education 22 18
Selection Sort Algorithm 4 Data ke1 dibandingkan dengan Data ke-4. Data yang paling kecil sekarang pada data indeks ke-4 (min =4) 7 4 2 Min = 1 j = 4 45 21 9 < 21 min = 4 52 61 [1] [2] [3] [4] [5] [6] [] [1] [2] [3] [4] [5] 9 15 Slide copyright Pearson Education 22 19
Selection Sort Algorithm 5 Data ke-4 dibandingkan dengan Data ke-5 7 Min = 4 j = 5 45 15< 9 min = 4 52 61 4 2 21 9 15 [1] [2] [3] [4] [5] [6] [] [1] [2] [3] [4] [5] Slide copyright Pearson Education 22 2
Selection Sort Algorithm 2 Diawali dengan mencari elemen yang paling kecil Tukar elemen yang paling kecil dengan Data indeks ke- 7 4 2 [1] [] [2] [1] [3] [2] [4] [3] [5] [4] [6] [5] Slide copyright Pearson Education 22 21
Selection Sort Algorithm 3 Diawali dengan mencari elemen yang paling kecil Tukar elemen yang paling kecil dengan Data indeks ke- 7 4 2 [1] [] [2] [1] [3] [2] [4] [3] [5] [4] [6] [5] Slide copyright Pearson Education 22 22
Selection Sort Algorithm 4 Sudah terurut Belum terurut Bagian dari Data yang sudah terurut 7 4 2 [1] [] [2] [1] [3] [2] [4] [3] [5] [4] [6] [5] Slide copyright Pearson Education 22 23
Selection Sort Algorithm 5 Sudah terurut Belum terurut Cari elemen terkecil pada bagian yang belum terurut 7 4 2 [1] [] [2] [1] [3] [2] [4] [3] [5] [4] [6] [5] Slide copyright Pearson Education 22 24
Selection Sort Algorithm 6 Sudah terurut Belum terurut Diawali dengan mencari elemen yang paling kecil Tukar dengan data paling depan pada daerah yang belum terurut 7 4 2 [1] [] [2] [1] [3] [2] [4] [3] [5] [4] [6] [5] Slide copyright Pearson Education 22 25
Selection Sort Algorithm 7 Sudah terurut Belum terurut Dua data telah terurut 7 4 2 [1] [] [2] [1] [3] [2] [4] [3] [5] [4] [6] [5] Slide copyright Pearson Education 22 26
Selection Sort Algorithm 8 Sudah terurut Belum terurut Proses dilanjutkan 7 4 2 Elemen terkecil [1] [] [2] [1] [3] [2] [4] [3] [5] [4] [6] [5] Slide copyright Pearson Education 22 27
Selection Sort Algorithm 9 Sudah terurut Belum terurut Proses dilanjutkan 7 4 2 [1] [] [2] [1] [3] [2] [4] [3] [5] [4] [6] [5] Slide copyright Pearson Education 22 28
Selection Sort Algorithm Sudah terurut Belum terurut Proses dilanjutkan 7 4 2 [1] [] [2] [1] [3] [2] [4] [3] [5] [4] [6] [5] Slide copyright Pearson Education 22 29
Selection Sort Algorithm 11 Sudah terurut Belum terurut 7 4 2 [1] [] [2] [1] [3] [2] [4] [3] [5] [4] [6] [5] Slide copyright Pearson Education 22
Selection Sort Algorithm 12 Berhenti pada saat bagian yang terurut tinggal hanya satu Data karena Data yang ada pasti bilangan yang paling besar Sudah terurut Belum teruru 7 4 2 [1] [] [2] [1] [3] [2] [4] [3] [5] [4] [6] [5] Slide copyright Pearson Education 22 31
Selection Sort Algorithm 13 Data sudah terurut 7 4 2 [1] [2] [3] [4] [5] [6] [] [1] [2] [3] [4] [5] Slide copyright Pearson Education 22 32
Analisa Selection Sort Basic Operasi (A[j] < A[min]) Tidak ada Best Case dan Worst Case Total pergeseran M = 3 * n-1 (pada setiap penukaran terjadi 3 x pergeseran) Jumlah pembandingannya C = 1 + 2 +.. + n-1 = n*(n-1)/2