struktur data
Armin Lawi
Teknik Informatika, Universitas Hasanuddin
Searching Problem
Input: Barisan n bilangan asli (a1, a2, , an) dalam larik A dan
sebuah bilangan key yang ingin dicari.
Output: Lokasi key dalam A. Jika key tidak ditemukan dalam A,
tambahkan key sebagai unsur terakhir.
Contoh:
Input barisan bilangan: A = (31, 41, 59, 26, 41, 58) dan key = 26
Algoritma pencarian (searching algorithm) mengembalikan
Output menghasilkan posisi key adalah 4.
Pencarian Berulang
Loop-Search(A, key)
cost
times
1 ada False
c1
2 for i 1 to length[A]
c2
n+1
c3
posisi i
ada True
c4
c5
6 if not(ada) then
7
posisi length[A] + 1
A[posisi] data
T ( n) 2n 2
c6
c7
c8
ti (2s 3)
i 1
i 1 ti
n
i 1 ti
n
ti (2s 3) 4n 3
i 1
ti (2s 3) 2n 5
i 1
Improvisasi Algoritma
cost
times
1 ada False
c1
2 for i 1 to length[A] /2
c2
n+1
c3
4
5
6
7
c4
ada True
c6
posisi n i + 1
ada True
if not(ada) then
n
2
c5
i 1 ti
i 1 ti
n
2
i 1 pi
i 1 pi
n
2
c7
n
2
c8
10
posisi length[A] + 1
c9
11
A[posisi] data
c10
c11n
T (n) 32 n 2
n
2
t 2
i 1 i
i 1 pi (2s 3)
2
n
2
i 1 ti , i 1 pi n2
n
2
t 2
i 1 i
n
2
n
2
dan s = 0)
n
2
7
p
(
2
s
3
)
n3
2
i 1 i
T ( n) n 2
3
2
n
2
t 1 atau
i 1 i
dan s = 0)
p
1
i 1 i
n
2
i 1 ti 2i 1 pi (2s 3) 32 n 5
n
2
n
2
Other ideas!??