33
Algoritma Sorting (Selection – Insertion)

Insertion and Selection

Embed Size (px)

Citation preview

Algoritma Sorting(Selection – Insertion)

• 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

Algoritma Insertion Sort1. i 12. selama (i < N) kerjakan baris 3 sampai dgn 93. key A[i]4. j i – 15. selama j >= 0 dan (A[j] > key) kerjakan baris 6 dan 76. A[j + 1] A[j]7. j j – 18. A[j+1] key9. i i + 1

C = Comparison

M = Move

M = Move

3 410 6 8 9 7 2 1 5

Nilai yang paling kiri (3) terurut terhadap dirinya sendiri. Sehingga kita tidak perlu melakukan apa-apa

Proses Insertion Sort

43 6 8 9 7 2 1 5

4 56 8 9 7 2 1

Cek apakah nilai pada indek ke-2 (10) lebih kecil dari indek ke-1 (3). Jika ya maka tukar. Kondisi diatas maka data tidak perlu diswap

10

3 10

Key = 10

4 56 8 9 7 2 1

Dua data pertama sudah terurut

3

Selanjutnya menyisipkan 4 di daerah abu-abu sehingga setelah penyisipan daerah abu-abu menjadi urut.

10

4 56 8 9 7 2 13 10 4

Simpan nilai yang akan diurutkan dalam variabel keyKey = 4

56 8 9 7 2 13 10

4

Nilai 10 digeser pada indek ke-3

56 8 9 7 2 13 10

4

Sisipkan 4 pada posisi yang tepat

56 8 9 7 2 13 104

C C = Comparison

M M = Move

Sekarang 3 data pertama sudah terurut secara relatif dan sisipkan data ke-4 ke daerah abu-abu. 4 Data pertama sudah terurut secara relatif

510 8 9 7 2 13 64

Ulangi Proses ini sampai data terurut semuanya.

5108 9 7 2 13 64

5108 9 7 2 13 64

5

108 9

2 13 64

7

5108 9 2 13 64 7

5108 92 13 64 7

5108 921 3 64 7

5 108 921 3 64 7

Analisa Insertion Sort• Basic Operation (Operasi Dasar) terdapat pada perbandingan key (A[j] > key)

Analisa Insertion SortBest 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 = 0- 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 Sort1. i 02. selama (i < N-1) kerjakan baris 3 sampai

dengan 113. min i 4. j i + 15. Selama (j < N) kerjakan baris 6 dan 76. Jika (A[j] < A[min]) maka min j 3. j j + 14. temp = A[i] 5. A[i] = A[min]6. A[min] = temp 11. i i + 1  

Selection Sort Algorithm

Perbandingan diawali pada dat indeks ke-0. Dibandingkan dengan data sesudahnya untuk mencari elemen yang paling kecil (menggunakan indeks data) Slide copyright Pearson

Education 2002 15

010203040506070

[1] [2] [3] [4] [5] [6][0] [1] [2] [3] [4] [5]

45

21

5261

915

Min = 0j = 1

(A[j] < A[min]) ? min j 

Selection Sort Algorithm – 1

Slide copyright Pearson Education 2002 16

010203040506070

[1] [2] [3] [4] [5] [6][0] [1] [2] [3] [4] [5]

45

21

5261

915

Min = 0j = 1

21 < 45 min = 1 Data ke-0

dibandingkan dengan data ke-1. Ternyata data min pada indeks ke-1 (min=1)

Selection Sort Algorithm – 2

Slide copyright Pearson Education 2002 17

010203040506070

[1] [2] [3] [4] [5] [6][0] [1] [2] [3] [4] [5]

45

21

5261

915

Min = 1j = 2

52 < 21 min = 1 Data ke1

dibandingkan dengan Data ke-2. Nilai yang paling kecil tetap pada data indeks ke-1

Selection Sort Algorithm – 3

Slide copyright Pearson Education 2002 18

010203040506070

[1] [2] [3] [4] [5] [6][0] [1] [2] [3] [4] [5]

45

21

5261

915

Min = 1j = 3

61 < 21 min = 1 Data ke1

dibandingkan dengan Data ke-3

Selection Sort Algorithm – 4

Slide copyright Pearson Education 2002 19

010203040506070

[1] [2] [3] [4] [5] [6][0] [1] [2] [3] [4] [5]

45

21

5261

915

Min = 1j = 4

9 < 21 min = 4 Data ke1

dibandingkan dengan Data ke-4. Data yang paling kecil sekarang pada data indeks ke-4 (min =4)

Selection Sort Algorithm – 5

Slide copyright Pearson Education 2002 20

010203040506070

[1] [2] [3] [4] [5] [6][0] [1] [2] [3] [4] [5]

45

21

5261

915

15< 9 min = 4

Min = 4j = 5Data ke-4

dibandingkan dengan Data ke-5

Selection Sort Algorithm – 2

• Diawali dengan mencari elemen yang paling kecil

• Tukar elemen yang paling kecil dengan Data indeks ke-0

Slide copyright Pearson Education 2002 21

010203040506070

[1] [2] [3] [4] [5] [6][0] [1] [2] [3] [4] [5]

Selection Sort Algorithm – 3

Slide copyright Pearson Education 2002 22

010203040506070

[1] [2] [3] [4] [5] [6][0] [1] [2] [3] [4] [5]

Diawali dengan mencari elemen yang paling kecil

Tukar elemen yang paling kecil dengan Data indeks ke-0

Selection Sort Algorithm – 4

• Bagian dari Data yang sudah terurut

Slide copyright Pearson Education 2002 23

010203040506070

[1] [2] [3] [4] [5] [6]

Sudah terurutBelum terurut

[0] [1] [2] [3] [4] [5]

Selection Sort Algorithm – 5

• Cari elemen terkecil pada bagian yang belum terurut

Slide copyright Pearson Education 2002 24

Sudah terurutBelum terurut

[0] [1] [2] [3] [4] [5]

Selection Sort Algorithm – 6

• Diawali dengan mencari elemen yang paling kecil

• Tukar dengan data paling depan pada daerah yang belum terurut

Slide copyright Pearson Education 2002 25

Sudah terurutBelum terurut

[0] [1] [2] [3] [4] [5]

Selection Sort Algorithm – 7

• Dua data telah terurut

Slide copyright Pearson Education 2002 26

Sudah terurutBelum terurut

[0] [1] [2] [3] [4] [5]

Selection Sort Algorithm – 8

• Proses dilanjutkan

Slide copyright Pearson Education 2002 27

Sudah terurutBelum terurut

Elemen terkecil

[0] [1] [2] [3] [4] [5]

Selection Sort Algorithm – 9

• Proses dilanjutkan

Slide copyright Pearson Education 2002 28

Sudah terurutBelum terurut

[0] [1] [2] [3] [4] [5]

Tukar

Dengan

depan

Selection Sort Algorithm – 10

• Proses dilanjutkan

Slide copyright Pearson Education 2002 29

Sudah terurutBelum terurut

[0] [1] [2] [3] [4] [5]

Selection Sort Algorithm – 11

Slide copyright Pearson Education 2002 30

Sudah terurutBelum terurut

[0] [1] [2] [3] [4] [5]

Selection Sort Algorithm – 12

• Berhenti pada saat bagian yang terurut tinggal hanya satu Data karena Data yang ada pasti bilangan yang paling besar Slide copyright Pearson

Education 2002 31[0] [1] [2] [3] [4] [5]

Sudah terurutBelum terurut

Selection Sort Algorithm – 13

• Data sudah terurut

Slide copyright Pearson Education 2002 32

[0] [1] [2] [3] [4] [5]

Analisa Selection Sort

Basic Operasi (A[j] < A[min])

Tidak ada Best Case dan Worst Case

Total pergeseranM = 3 * n-1 (pada setiap penukaran terjadi 3 x pergeseran)Jumlah pembandingannya C = 1 + 2 + .. + n-1 = n*(n-1)/2