Kuliah Ke-8
Kuliah Ke-8
2
Algoritma prosedur pengurutan dengan metode Maximum Sort adalah sbb :
Procedure MaxSort(input/output L : Larik, input N : integer)
{mengurutkan elemen Larik L[1..N] sehingga tersusun MENAIK dg metode pengurutan maksimum}
{Kondisi awal : lemen larik L sudah terdefinis harganya}
{Kondisi Akhir : Elemen larik L terurut MENAIK sedemikian sehingga L[1] L[2] .. L[N]}
Kamus Lokal
I : integer {pencacah utk jumlah langkah}
J : integer {pencacah utk mencari nilai maksimum}
U : integer {indeks ujung kiri bagian larik yg telah terurut}
Maks : integer {nilai maksimum sementara}
Imaks : integer {indeks yg berisi nilai maksimum sementara}
Temp : integer {variabel bantu untuk pertukaran}
ALGORITMA
U := N
For I := 1 to N-1 do
Maks := L[1]
Imaks := 1
For j := 2 to U do
If L[j] > Maks then
Maks := L[j]
Imaks := j
Endif
Endfor
{pertukarkan Maks dengan L[U]}
Temp := L[U]
L[U] := L[Imaks]
L[Imaks} := Temp
{Larik L[U..N] terurut, larik [1..U-1] belum terurut}
U := U-1
endfor
3
Insertion Sort
Seperti metode sebelumnya, untuk larik berukuran N jumlah tahapan yang
dilakukan adalah N-1. Pencarian posisi yg tepat dimulai untuk elemen
kedua (ukuran larik >1), jk elemen pertama sudah pada tempatnya.
Misal larik akan diurun MENAIK. Pada setiap tahap ke-K, larik terdiri
atas dua bagian : bagian terurut yaitu L[1..K-1], dan bagian belum
terurut L[K..N]. Ambil elemen L[K} dan sisipkan pada posisi yang tepat
di dalam L[1..K-1] sedemikian sehingga [1..K] tetap terurut. Caranya
bandingkan L[K] dengan L[J], J=K-1, K-2, ….., 1. Jika L[K] < L[J], geser
L[J} ke L[J+1]. Posisi yang tepat ditemukan jika L[K]>L[J] atau J = 1,
sehingga ditempatkan pada posisi ke-(J+1).
Algoritma pengurutan dengan metode Insertion Sort adalah sbb :
Misal : L[1] dianggap sudah pada tempatnya
Langkah 2 : L[2] harus dicari tempatnya yang tepat pada L[1..2] dengan cara
menggeser elemen L[1..1] ke kanan bila L[1..1] lebih besar daripada
L[2]. Misalkan posisi yg tepat adalah K. Sisipkan L[2] pada L[K].
Langkah 3 : L[3] harus dicari tempatnya yang tepat pada L[1..3] dengan cara
menggeser elemen L[1..2] ke kanan bila [1..2] lebih besar dari pada
L[3]. Misalkan posisi yang tepat adakah K. Sisipkan L[3] pada L[k].
Langkah 4 : L[4] harus dicari tempatnya yang tepat pada L[1..4] dengan cara
menggeser elemen L[1..3] ke kanan bila [1..3] lebih besar dari pada
L[4]. Misalkan posisi yang tepat adakah K. Sisipkan L[4] pada L[k].
………..
Langkah N : L[N] harus dicari tempatnya yang tepat pada L[1..N-1] dengan
cara menggeser elemen L[1..N-1] ke kanan bila [1..N-1] lebih besar
dari pada L[4]. Misalkan posisi yang tepat adakah K. Sisipkan L[N]
pada L[k].
Hasil dari langkah N : Larik L[1..N] sudah terurut MENAIK
4
Algoritma prosedur pengurutan dengan metode Insertion Sort adalah sbb :
Procedure MaxSort(input/output L : Larik, input N : integer)
{mengurutkan elemen Larik L[1..N] sehingga tersusun MENAIK dg metode pengurutan maksimum}
{Kondisi awal : lemen larik L sudah terdefinis harganya}
{Kondisi Akhir : Elemen larik L terurut MENAIK sedemikian sehingga L[1] L[2] .. L[N]}
Kamus Lokal
K : integer {pencacah utk jumlah langkah}
J : integer {pencacah utk penelusuran Larik}
Temp : integer {variabel bantu untuk pertukaran}
ALGORITMA
{elemen L[1] dianggap sudah terurut}
For K := 2 to N do {mulai dari langkah 2 sampai langkah N}
Temp := L[K]
{cari posisi yg tepat utk L[K] di dlm L[1..K-1] sambil menggeser}
J := K-1
While (Temp L[J]) and (J>1) do
L[J+1] := L[J]
J := J-1
Endwhile
If Temp L[J] then
L[J+1] := Temp
Else
L[J+1] := L[J]
L[J] := Temp
Endif
endfor
5
Bubble Sort
Idenya adalah gelembung air yang akan ‘mengapung’. Elemen berharga kecil
akan ‘diapungkan’, artinya diangkat ke atas melalui pertukaran.
Proses dilakukan sebanyak N langkah.
Langkah 1 :
–Mulai dr elemen K = N,N-1,…,2, bandingkan L[K] dengan L[K-1]. Jk
L[k]<L[k-1], pertukarkan L[k] dg L[k-1]. Pd akhir langkah 1, elemen
L[1] berisi harga minimum pertama.
Langkah 2 :
–Mulai dr elemen K = N,N-1,…,3, bandingkan L[K] dengan L[K-1]. Jk
L[k]<L[k-1], pertukarkan L[k] dg L[k-1]. Pd akhir langkah 2, elemen
L[2] berisi harga minimum kedua dan larik L[1..2] terurut
•
Langkah 3 :
–Mulai dr elemen K = N,N-1,…,4, bandingkan L[K] dengan L[K-1]. Jk
L[k]<L[k-1], pertukarkan L[k] dg L[k-1]. Pd akhir langkah 3, elemen
L[3] berisi harga minimum ketiga dan larik L[1..3] terurut
•
……
Langkah N-1 :
–Mulai dr elemen K = N, bandingkan L[K] dengan L[K-1]. Jk L[k]<L[k-1],
pertukarkan L[k] dg L[k-1].
6
Algoritma prosedur pengurutan dengan metode Bubble Sort adalah sbb :