Chapter 8 Searching

Post on 03-Jan-2016

76 views 0 download

description

Chapter 8 Searching. WATTANAPONG SUTTAPAK Software Engineering, School of Information Communication Technology, University of PHAYAO. จุดประสงค์ บทเรียนที่ 5. Sequential Searching Binary Searching Depth-First Search Breadth-First Search. Sequential Searching. Sequential Searching. - PowerPoint PPT Presentation

Transcript of Chapter 8 Searching

1

WATTANAPONG SUTTAPAKSOFTWARE ENGINEERING, SCHOOL OF INFORMATION

COMMUNICATION TECHNOLOGY,UNIVERSITY OF PHAYAO

Chapter 8Searching

2

จุ�ดประสงค์ บทเร�ยนท�� 5

Sequential SearchingBinary SearchingDepth-First SearchBreadth-First Search

3

Sequential Searching

4

Sequential Searching

หมายถึ�งการค์�นหาในร�ปท��วไป โดยน าไปเปร�ยบเท�ยบท�ละค์"า Linear Searchingเช่"นA = {12 , 15 , 7 , 8 , 9 , 11 , 23 , 1 , 4 , 20 , 3 , 17 , 16}ค้�นหา 11found = 0;for i=1 to A.length if A[i] == 11 found = i; end ifend for

Best Case BigO

Best Case 1

Average Case n/2

Worse Case n

5

Binary Searching

6

Binary Searching

การค์�นหาในร�ปแบบแบ"งสองส"วน devide and conquer binary search tree

ตั�วอย"างการค์�นหา 2A = {1,2,3,4,5,6,7,8,11}

Best Case BigO

Best Case 1

Average Case log n

Worse Case log n

1 2 3 4 5 6 7 8 111 2 3 4 5 6 7 8 111 2 3 4 5 6 7 8 11

7

Binary Searching

การค์�นหาในร�ปแบบแบ"งสองส"วน devide and conquer binary search tree

ตั�วอย"างการค์�นหา 26

4 8

2 711

5

1 3 Best Case BigO

Best Case 1

Average Case log n

Worse Case log n

8

Exercise

ให�เขี�ยนโปรแกรมเปร�ยบเท�ยบการท างานระหว"าง sequential search และ binary searching

binary searching ให�เขี�ยนท�(งสองว)ธี�การเปร�ยบเท�ยบผลท��ได� ขี�อด�ขี�อเส�ยขีองแตั"ละว)ธี�

9

Depth-First Search

10

Depth-First Search

L M N O P

G

Q

H JI K

FED

B C

A

ใช้� stackAA BA B DA BA B EA B E HA B E H LA B E H A B E H MA B E H A B E H N

A B E H NA B E HA B E A B E IA B E I OA B E IA B E I PA B E IA B E A B AA C …

11

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA

B

C

D

E

F

G

H

12

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA

B

C

D √

E

F

G

H D

D

13

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA

B

C √

D √

E

F

G

H

CD

D C

14

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA

B

C √

D √

E

F

G

H DD C

15

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA

B

C √

D √

E √

F

G

H

ED

D C E

16

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA

B

C √

D √

E √

F

G √

H

GED

D C E G

17

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA

B

C √

D √

E √

F

G √

H √

HGED

D C E G H

18

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA

B √

C √

D √

E √

F

G √

H √

BHGED

D C E G H B

19

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA

B √

C √

D √

E √

F

G √

H √

HGED

D C E G H B

20

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA √

B √

C √

D √

E √

F

G √

H √

AHGED

D C E G H B A

21

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA √

B √

C √

D √

E √

F

G √

H √

HGED

D C E G H B A

22

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA √

B √

C √

D √

E √

F

G √

H √

GED

D C E G H B A

23

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA √

B √

C √

D √

E √

F

G √

H √

ED

D C E G H B A

24

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA √

B √

C √

D √

E √

F

G √

H √ D

D C E G H B A

25

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA √

B √

C √

D √

E √

F √

G √

H √

FD

D C E G H B A F

26

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA √

B √

C √

D √

E √

F √

G √

H √ D

D C E G H B A F

27

Depth-First Search

การหาเส�นทางจุากจุ�ดหน��งไปอ�กจุ�ดหน��ง

A

HB

F

E

D

C

G

Visited NodeA √

B √

C √

D √

E √

F √

G √

H √

D C E G H B A F

28

Exercise

ให�เขี�ยนโปรแกรมเพื่-�อหาเส�นทางท�(งหมด จุากจุ�ด D ไปย�ง B

A

HB

F

E

D

C

G

29

Breadth-First Search

30

Breadth-First Search

L M N O P

G

Q

H JI K

FED

B C

Aใช่� queueAA BA B CA B C D EA B C D E F GA B C D E F G H I J KA … Q

31

Breadth-First Search

A

HB

F

E

D

C

G

32

Breadth-First Search

A

HB

F

E

D

C

G

D

33

Breadth-First Search

A

HB

F

E

D

C

G

DD-CD-ED-F

34

Breadth-First Search

A

HB

F

E

D

C

G

DD-CD-ED-FD-E-G

35

Breadth-First Search

A

HB

F

E

D

C

G

DD-CD-ED-FD-E-GD-E-G-H

36

Breadth-First Search

A

HB

F

E

D

C

G

DD-CD-ED-FD-E-GD-E-G-HD-E-G-H-AD-E-G-H-B

37

Depth-First Search VS Breadth-First Search

Sudoku

38

Depth-First Search VS Breadth-First Search

Silly Sort ให�หาผลรวมขีองตั�วเลขีท��ม�การสล�บตั าแหน"งก�น โดยผลรวมท��ได�ตั�องม�ค์"าน�อยส�ด input บรรท�ดแรกเป.นจุ านวนตั�วเลขีท��ตั�องการเร�ยงล าด�บ แทนด�วย n เม-�อ บรรท�ดท��สองเป.นตั�วเลขีแตั"ละตั�วท��ตั�องการเร�ยงล าด�บ a1 a2 a3 … an โดย output แสดงผลรวมท��น�อยท��ส�ดขีองตั�วเลขีท��สล�บล าด�บ

Sample Input Sample Output3 3 2 1 4 8 1 2 4 5 1 8 9 7 6 6 8 4 5 3 2 7 0

4 174134

Silly sort

ลำาดั�บเลำข 1 8 9 7 6 ค้าตอบค้�อ ผลำรวมต�วเลำขสลำ�บตาแหน�งน�อยที่��ส�ดัเที่�ากั�บ 41ว!ธี�ที่�� 1 ย�ายตาแหน�งที่��ไม�ตรงกั�บตาแหน�งที่��เร�ยงลำาดั�บแลำ�ว

o ล าด�บการสล�บตั าแหน"งท��น�อยท��ส�ดค์-อo 1 8 9 7 6 เป/าหมายค์-อ 1 6 7 8 9o ถึ�าค์)ดง"ายท��ส�ดค์-อ เก0บ 1 ไว�ตั าแหน"งเด)ม แล�วย�ายตั�วท��ตั าแหน"งตัรงก�น น��นค์-อ

8,7 9,6 ผลรวม 30o จุะได� 1 7 6 8 9 จุากน�(นย�าย 7 6 ผลรวม 13+30 = 43

ว!ธี�ที่�� 2 ย�ายตาแหน�งต�วเลำขโดัยใช้�เลำขที่��น�อยที่��ส�ดัเป็&นต�วย�าย ใช่� 1 เป.นตั�วย�ายเลขีอ-�น 1,6(7) >>> 6 8 9 7 1 >1,9(17) >>> 6 8 1 7 9 > 1,7(25)

>>> 6 8 7 1 9 1,8(34) >>> 6 1 7 8 9 >> 1,6(41) >>> 1 6 7 8 9

ค์ าตัอบท��ด�ท��ส�ดค์-อ ว)ธี� 2 แล�วร� �ได�อย"างไรว"าตั�องใช่� 1 ในการส�บเปล��ยน

40

Depth-First Search VS Breadth-First Search

Maze

http://commons.wikimedia.org/w/index.php?title=File%3AMAZE_30x20_DFS.ogv

41

ตั�วอย"างโจุทย Breadth-First Search

Puzzle Solve

PuzzleSolve(3,(),{a,b,c})

Initial call

PuzzleSolve(2,c,{a,b})PuzzleSolve(2,b,{a,c})PuzzleSolve(2,a,{b,c})

PuzzleSolve(1,ab,{c})

PuzzleSolve(1,ac,{b}) PuzzleSolve(1,cb,{a})

PuzzleSolve(1,ca,{b})

PuzzleSolve(1,bc,{a})

PuzzleSolve(1,ba,{c})

abc

acb

bac

bca

cab

cba

42

ตั�วอย"างโจุทย Breadth-First Search

Subset SUM ให�หาจุ านวนค์ร�(งท��เก)ดผลรวมเท"าก�บ 18

INPUT OUTPUT

5 1 2 3 4 84 1 2 3 4 5 2 3 4 5 6

101

TestCase

8 1 2 3 4 5 6 7 8 10 1 2 3 4 5 6 7 8 9 10