Searching Divide and Conquere.
Searching Divide And Conquere
wijanarto
Searching
• Sekuential
• Binary Search
• Interpolation Search
Sequential Search
• Dikenal sebagai linear search
• Mencari key(info yang dicari) pada suatu data
tak terurut hingga data di temukan atau data
sudah mencapai akhir larik
Algoritma Insert sekuensial dalam
Flowchart
Mulai
Data disimpan dari
Alamat awal ke alamat
berikutnya
Addr0
M(addr)data
M(addr)
Isi ?
T
Y
Selesai
AddrAddr+1
Y
T
Addr=p ?
Searching Sekuensial terurut
• Data tersimpan dalam keadaan terurut
• Pencarian secara ascending atau descending
• Alamat terakhir(P1) dari larik (P) adalah
– 0data ? Y (50>15)
4. Addr=addr+1 (addr=1)
5. Ulangi langkah 1
Jika di jalankan maka akan memerlukan 5 langkah
untuk menemukan data 50, yaitu dr 15,20,25,30 dan 50
Binary Search
• t[1..n] data tersortir menaik, t[i]t[j], dimana
1 i j n.
• X adalah elemen yang di cari dalam t, jika x
tidak ada dalam t, maka kita dapat
menyisipkannya ke t.
• Problem : mencari index I sedemikian rupa
sehingga 1 i j n dan t[i-1]< x t[i]
Binary Search dengan DANDC
Binsearch (t[1..n],x) {
if n==0 and x> t[n] then return n+1
else return Binrecc(t[1..n],x)
}
Binrecc (t[1..n],x) {
/*mencari x dalam array t*/
/*untuk t[i-1]N 0
>
>
1
10
>
>
>
>
3
2
20
>
>
<
>
4
3
28
>
>
>
5
4
40
>
>
=
6
5
42
>
>
7
6
50
>
>
8
7
60
>
>
9
8
80
>
>
10
9
100
=
>
10
11
10
1000
<
11
3
5
Binary Search
(1)100,(2)800,(3)13,(4)40
5
0
10
1
20
2
28
3
40
4
42
5
50
6
60
7
80
8
9 100
10 1000
Data
step
L
U
t
M(t)
Data:M(t)
100
1
0
10
5
42
>
2
5+1=6
10
8
80
>
3
8+1=9
10
9
100
=
1
0
10
5
42
>
2
5+1=6
10
8
80
>
3
8+1=9
10
9
100
>
4
9+1=10
10
10
1000
<
5
10
10-1=9
9
sudah
stop
800
Data>M(addr) maka L=t+1 dan U tetap
Data
3
2+1=3
4
4
40
=
40
Data>M(addr) maka L=t+1 dan U tetap
Data
10
3
28
>
4
10
5
42
>
4
6
10
7
60
>
5
8
10
9
100
=
1
0
10
8
80
>
2
9
10
10
1000
<
3
9
9
10
Data>M(addr) maka L=t+1 dan U tetap
Data
2
2
10
3
28
>
3
4
10
4
40
=
13
Data>M(addr) maka L=t+1 dan U tetap
Data
stop
Perbandingan Metode
Data Cari
Langkah
SS
BS
IS
100
10
3
5
800
11
5
3
13
3
3
2
40
5
3
3
Rata-rata =∑/N
29/4
14/4
13/4
Jadi metode yang terbaik untuk kasus diatas adalah IS
source
simulasi
Soal
• X=1,3,6,10,15,21,28,36,45,55,75,150,750,1500,3000
• Cari data dengan 3 metode seq,binary dan interpolasi untuk
data: 25,21,750 dan 1250. Hitung berapa langkah utk masingmasing data dan cari rata-rata pencariannya.
• Solusi
Soal Lagi ?
Data
27,18,29,28,39,13,16,42,17
Ditanya:
Dicari 39,50,42,20
Gunakan SS,BS,IS
Berapa rata-rata masing-masing metode
wijanarto
Searching
• Sekuential
• Binary Search
• Interpolation Search
Sequential Search
• Dikenal sebagai linear search
• Mencari key(info yang dicari) pada suatu data
tak terurut hingga data di temukan atau data
sudah mencapai akhir larik
Algoritma Insert sekuensial dalam
Flowchart
Mulai
Data disimpan dari
Alamat awal ke alamat
berikutnya
Addr0
M(addr)data
M(addr)
Isi ?
T
Y
Selesai
AddrAddr+1
Y
T
Addr=p ?
Searching Sekuensial terurut
• Data tersimpan dalam keadaan terurut
• Pencarian secara ascending atau descending
• Alamat terakhir(P1) dari larik (P) adalah
– 0data ? Y (50>15)
4. Addr=addr+1 (addr=1)
5. Ulangi langkah 1
Jika di jalankan maka akan memerlukan 5 langkah
untuk menemukan data 50, yaitu dr 15,20,25,30 dan 50
Binary Search
• t[1..n] data tersortir menaik, t[i]t[j], dimana
1 i j n.
• X adalah elemen yang di cari dalam t, jika x
tidak ada dalam t, maka kita dapat
menyisipkannya ke t.
• Problem : mencari index I sedemikian rupa
sehingga 1 i j n dan t[i-1]< x t[i]
Binary Search dengan DANDC
Binsearch (t[1..n],x) {
if n==0 and x> t[n] then return n+1
else return Binrecc(t[1..n],x)
}
Binrecc (t[1..n],x) {
/*mencari x dalam array t*/
/*untuk t[i-1]N 0
>
>
1
10
>
>
>
>
3
2
20
>
>
<
>
4
3
28
>
>
>
5
4
40
>
>
=
6
5
42
>
>
7
6
50
>
>
8
7
60
>
>
9
8
80
>
>
10
9
100
=
>
10
11
10
1000
<
11
3
5
Binary Search
(1)100,(2)800,(3)13,(4)40
5
0
10
1
20
2
28
3
40
4
42
5
50
6
60
7
80
8
9 100
10 1000
Data
step
L
U
t
M(t)
Data:M(t)
100
1
0
10
5
42
>
2
5+1=6
10
8
80
>
3
8+1=9
10
9
100
=
1
0
10
5
42
>
2
5+1=6
10
8
80
>
3
8+1=9
10
9
100
>
4
9+1=10
10
10
1000
<
5
10
10-1=9
9
sudah
stop
800
Data>M(addr) maka L=t+1 dan U tetap
Data
3
2+1=3
4
4
40
=
40
Data>M(addr) maka L=t+1 dan U tetap
Data
10
3
28
>
4
10
5
42
>
4
6
10
7
60
>
5
8
10
9
100
=
1
0
10
8
80
>
2
9
10
10
1000
<
3
9
9
10
Data>M(addr) maka L=t+1 dan U tetap
Data
2
2
10
3
28
>
3
4
10
4
40
=
13
Data>M(addr) maka L=t+1 dan U tetap
Data
stop
Perbandingan Metode
Data Cari
Langkah
SS
BS
IS
100
10
3
5
800
11
5
3
13
3
3
2
40
5
3
3
Rata-rata =∑/N
29/4
14/4
13/4
Jadi metode yang terbaik untuk kasus diatas adalah IS
source
simulasi
Soal
• X=1,3,6,10,15,21,28,36,45,55,75,150,750,1500,3000
• Cari data dengan 3 metode seq,binary dan interpolasi untuk
data: 25,21,750 dan 1250. Hitung berapa langkah utk masingmasing data dan cari rata-rata pencariannya.
• Solusi
Soal Lagi ?
Data
27,18,29,28,39,13,16,42,17
Ditanya:
Dicari 39,50,42,20
Gunakan SS,BS,IS
Berapa rata-rata masing-masing metode