Anda di halaman 1dari 6

1

1
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
I1rl|1 k|1r|l|ms
1. |aserl|aa
2. 8e|etl|aa
3. Baaa|e
4. 8|e||
5. a|t|
. Vere
2
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
Metode penyisipan (Insertion sort)
bertujuan untuk menjadikan bagian sisi kiri
array terurutkan sampai dengan seluruh
array berhasil diurutkan.
Metode ini mengurutkan bilangan-bilangan
yang telah dibaca; dan berikutnya secara
berulang akan menyisipkan bilangan-
bilangan dalam array yang belum terbaca
ke sisi kiri array yang telah terurut.
Insertion Sort
2
3
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
3 4 10 6 8 9 7 2 1 5
Bilangan paling kiri (3) bisa dikatakan
telah terurut secara relatif thd dirinya
sendiri. Thus, we dont need to do
anything.
Insertion Sort
4
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
4 3 6 8 9 7 2 1 5
4 5 6 8 9 7 2 1
Cek, untuk melihat apakah bilangan
kedua (10) lebih kecil dari pada yang
pertama (3). Jika ya, tukarkan kedua
bilangan ini. Namun, kali ini kita tidak
perlu melakukan penukaran.
10
3 10
3
5
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
Bagian biru/abu-abu (dua bilangan pertama)
sekarang dalam keadaan terurut secara relatif.
Berikutnya, kita perlu menyisipkan bilangan
ketiga (4) ke dalam bagian biru/abu-abu sehingga
setelah penyisipan tersebut, bagian biru/abu-abu
tetap dalam keadaan terurut secara relatif;
CARANYA
4 5 6 8 9 7 2 1 3 10
4 5 6 8 9 7 2 1 3 10 4
6
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
Pertama : Ambil bilangan ketiga (4).
5 6 8 9 7 2 1 10
4
3
Kedua : Geser bilangan kedua (10) shg ada ruang untuk disisipi.
5 6 8 9 7 2 1 3
4
10
Ketiga : Sisipkan bilangan 4 ke posisi yang tepat
5 6 8 9 7 2 1 3 10 4
4
7
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
Sekarang, tiga bilangan pertama sudah terurut secara relatif
dan kita sisipkan bilangan keempat kepada tiga bilangan
pertama tsb. Setelah penyisipan, empat bilangan pertama
haruslah dalam keadaan terurut secara relatif.
5 10 8 9 7 2 1 3 6 4
Ulangi proses tsb sampai bilangan terakhir disisipkan.
5 10 8 9 7 2 1 3 6 4
5 10 8 9 7 2 1 3 6 4
8
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
5
10 8 9
2 1 3 6 4
7
5 10 8 9 2 1 3 6 4 7
5 10 8 9 2 1 3 6 4 7
5 10 8 9 2 1 3 6 4 7
5 10 8 9 2 1 3 6 4 7
5
9
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
k|1r|lmz sl11s |s1)|s|;z1
1. i 1
2. se|ama (i < n) |erja|aa aar|s 3 samja| aa 9
3. key A[i]
4. j i 1
5. se|ama j >= 0 aaa (A[j] > key) |erja|aa aar|s
aaa 7
. A[j + 1] A[j]
7. j j 1
8. A[j+1] key
9. i i + 1
10
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
|ss111 |11s
|asert|ea8ert(k, a| (
ter | = 1 te a (
|ey = kj| //Assign elemen array indeks i ke key
[ = | 1 //Inisialisasi j utk pembandingan
//bandingkan elemen array pd indeks j dgn key
//if j >= 0 dan elemen indeks j > key
wh||e ([ >= 0| aa (kj[ > |ey| (
kj[+1 = kj[ //pindahkan elemen tsb ke 1 posisi berikutnya
[ = [ - 1 //go to next lower element
| //Lanjutkan sampai A[j] not > key
kj[+1 = |ey //assign temp kembali ke array
|
|
6
11
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
|1ssrl|11 I1rl k1z|)s|s
Raaa|a l|me aa|aa |aaya aeraalaa jaaa a|araa array,
aamaa jaa jaaa sasaaaa |s| aya
BEST CASE:
Array saaa| aa|am |eaaaaa leraral aa||
Laaj leraa|am l|aa| jeraa| a|e|se|as|
Jam|a| jereseraa . 2(a1l
Jam|a| jemaaaa|aaa |ey (C) . (a1l
12
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
|1ssrl|11 I1rl k1z|)s|s
WORST CASE
Array aa|am aralaa |eaa|||aaaya
Laaj leraa|am a|e|se|as| seaaaya| j1 |a||,
aala| j = 2,3,..,a
Jam|a| jereseraa .
2(a1l - (1 - 2 - .. - a1l =
2(a1l - a ( a1l | 2
Jam|a| jemaaaa|aaa |ey .
(1 - 2 - .. - a1l = a (a1l | 2