• Tidak ada hasil yang ditemukan

Algoritma Insertion Sort

N/A
N/A
Nguyễn Gia Hào

Academic year: 2023

Membagikan "Algoritma Insertion Sort"

Copied!
33
0
0

Teks penuh

(1)

Algoritma Sorting

(Selection – Insertion)

(2)

• 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

(3)

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 >= 0 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

C = Comparison

M = Move

M = Move

(4)

3 10 4 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

(5)

4

3 6 8 9 7 2 1 5

4 6 8 9 7 2 1 5

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

(6)

4 6 8 9 7 2 1 5

Dua data pertama sudah terurut

3

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

10

4 6 8 9 7 2 1 5

3 10 4

(7)

Simpan nilai yang akan diurutkan dalam variabel key Key = 4

5

6 8 9 7 2 1

3 10

4

Nilai 10 digeser pada indek ke-3

5

6 8 9 7 2 1

3 10

4

Sisipkan 4 pada posisi yang tepat

5

6 8 9 7 2 1

3 4 10

C C = Comparison

M M = Move

(8)

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

5 10 8 9 7 2 1

3 4 6

Ulangi Proses ini sampai data terurut semuanya.

5 10

8 9 7 2 1

3 4 6

5 10

8 9 7 2 1

3 4 6

(9)

5

10 8 9

2 1 3 4 6

7

5 10

8 9 2 1

3 4 6 7

5 10

8 9

2 3 4 6 7 1

5 10

8 9 2

1 3 4 6 7

5 8 9 10

2

1 3 4 6 7

(10)

Analisa Insertion Sort

• Basic Operation (Operasi Dasar) terdapat pada perbandingan key

(A[j] > key)

(11)

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 = 0 - Jumlah pembandingan key (comparison)

C = n – 1

(12)

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

(13)

Selection Sort

(14)

Algoritma Selection Sort

1. i 0

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]

10. A[min] = temp 11. i i + 1

(15)

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

0 10 20 30 40 50 60 70

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

45

21

52

61

9 15 Min = 0

j = 1

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

(16)

Selection Sort Algorithm – 1

Slide copyright Pearson Education 2002 16

0 10 20 30 40 50 60 70

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

45

21

52

61

9 15 Min = 0

j = 1

21 < 45 min = 1

Data ke-0

dibandingkan dengan data ke-1.

Ternyata data min pada indeks ke-1

(min=1)

(17)

Selection Sort Algorithm – 2

Slide copyright Pearson Education 2002 17

0 10 20 30 40 50 60 70

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

45

21

52

61

9 15 Min = 1

j = 2

52 < 21 min = 1

Data ke1

dibandingkan dengan Data ke-2. Nilai yang paling kecil

tetap pada

data indeks ke-

1

(18)

Selection Sort Algorithm – 3

Slide copyright Pearson Education 2002 18

0 10 20 30 40 50 60 70

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

45

21

52

61

9 15 Min = 1

j = 3

61 < 21 min = 1

Data ke1

dibandingkan

dengan Data

ke-3

(19)

Selection Sort Algorithm – 4

Slide copyright Pearson Education 2002 19

0 10 20 30 40 50 60 70

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

45

21

52

61

9 15 Min = 1

j = 4

9 < 21 min = 4

Data ke1

dibandingkan dengan Data ke-4. Data yang paling kecil

sekarang

pada data

indeks ke-4

(min =4)

(20)

Selection Sort Algorithm – 5

Slide copyright Pearson Education 2002 20

0 10 20 30 40 50 60 70

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

45

21

52

61

9 15 15< 9

min = 4 Min = 4

j = 5

Data ke-4

dibandingkan

dengan Data

ke-5

(21)

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

0 10 20 30 40 50 60 70

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

0 10 20 30 40 50 60 70

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

(22)

Selection Sort Algorithm – 3

Slide copyright Pearson Education 2002 22

0 10 20 30 40 50 60 70

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

0 10 20 30 40 50 60 70

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

Diawali dengan mencari

elemen yang paling kecil

Tukar elemen

yang paling

kecil dengan

Data indeks

ke-0

(23)

Selection Sort Algorithm – 4

• Bagian dari Data yang sudah

terurut

Slide copyright Pearson Education 2002 23

0 10 20 30 40 50 60 70

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

0 10 20 30 40 50 60 70

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

Sudah terurut Belum terurut

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

(24)

Selection Sort Algorithm – 5

• Cari elemen terkecil pada bagian yang belum

terurut

Slide copyright Pearson Education 2002 24

0 10 20 30 40 50 60 70

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

0 10 20 30 40 50 60 70

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

Sudah terurut Belum terurut

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

(25)

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

0 10 20 30 40 50 60 70

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

0 10 20 30 40 50 60 70

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

Sudah terurut Belum terurut

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

(26)

Selection Sort Algorithm – 7

• Dua data

telah terurut

Slide copyright Pearson Education 2002 26

0 10 20 30 40 50 60 70

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

0 10 20 30 40 50 60 70

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

Sudah terurut Belum terurut

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

(27)

Selection Sort Algorithm – 8

• Proses

dilanjutkan

Slide copyright Pearson Education 2002 27

0 10 20 30 40 50 60 70

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

0 10 20 30 40 50 60 70

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

Sudah terurut Belum terurut

Elemen terkecil

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

(28)

Selection Sort Algorithm – 9

• Proses

dilanjutkan

Slide copyright Pearson Education 2002 28

0 10 20 30 40 50 60 70

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

0 10 20 30 40 50 60 70

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

Sudah terurut Belum terurut

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

(29)

Selection Sort Algorithm – 10

• Proses

dilanjutkan

Slide copyright Pearson Education 2002 29

0 10 20 30 40 50 60 70

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

0 10 20 30 40 50 60 70

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

Sudah terurut Belum terurut

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

(30)

Selection Sort Algorithm – 11

Slide copyright Pearson Education 2002 30

0 10 20 30 40 50 60 70

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

0 10 20 30 40 50 60 70

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

Sudah terurut Belum terurut

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

(31)

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 10 20 30 40 50 60 70

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

0 10 20 30 40 50 60 70

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

Sudah terurut Belum terurut

(32)

Selection Sort Algorithm – 13

• Data sudah terurut

Slide copyright Pearson Education 2002 32

0 10 20 30 40 50 60 70

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

(33)

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

Referensi

Dokumen terkait

Pembahasan untuk tiap metode akan difokuskan pada cara kerja pengurutan beserta contohnya, analisa algoritma untuk kondisi terburuk ( worst case ), rata-rata (

Dengan demikian maka pada pembahasan kali ini akan dibandingkan hasil dari perhitungan dengan menggunakan algoritma greedy , algoritma cheapest insertion heuristics

Ada banyak metode untuk sorting data, namun pada tugas akhir ini akan dibahas metode Bucket sort adalah algoritma yang membagi dan memecahkan himpunan array ke dalam beberapa

Ada banyak metode untuk sorting data, namun pada tugas akhir ini akan dibahas metode Bucket sort adalah algoritma yang membagi dan memecahkan himpunan array ke dalam beberapa

Untuk sorting ascending (menaik), elemen yang paling kecil di antara elemen-elemen yang belum urut, disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks

Untuk mengetahui seberapa efisien kedua algoritma tersebut seperti yang telah dilakukan oleh kedua penelitian di atas, maka pada makalah ini akan membahas mengenai

Pembahasan untuk tiap metode akan difokuskan pada cara kerja pengurutan beserta contohnya, analisa algoritma untuk kondisi terburuk (worst case), rata-rata (average

vii DAFTAR GAMBAR Gambar 2.1 Ilustrasi Insertion Sort 19 Gambar 2.2 Contoh Use Case Diagram 24 Gambar 2.3 Contoh Activity Diagram 25 Gambar 2.4 Contoh Sequence Diagram 26 Gambar