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


Addr0
M(addr)data
M(addr)
Isi ?

T

Y
Selesai

AddrAddr+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