Chapter 8 Searching

42
WATTANAPONG SUTTAPAK SOFTWARE ENGINEERING, SCHOOL OF INFORMATION COMMUNICATION TECHNOLOGY, UNIVERSITY OF PHAYAO Chapter 8 Searching 1

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

Page 1: Chapter 8 Searching

1

WATTANAPONG SUTTAPAKSOFTWARE ENGINEERING, SCHOOL OF INFORMATION

COMMUNICATION TECHNOLOGY,UNIVERSITY OF PHAYAO

Chapter 8Searching

Page 2: Chapter 8 Searching

2

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

Sequential SearchingBinary SearchingDepth-First SearchBreadth-First Search

Page 3: Chapter 8 Searching

3

Sequential Searching

Page 4: Chapter 8 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

Page 5: Chapter 8 Searching

5

Binary Searching

Page 6: Chapter 8 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

Page 7: Chapter 8 Searching

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

Page 8: Chapter 8 Searching

8

Exercise

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

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

Page 9: Chapter 8 Searching

9

Depth-First Search

Page 10: Chapter 8 Searching

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 …

Page 11: Chapter 8 Searching

11

Depth-First Search

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

A

HB

F

E

D

C

G

Visited NodeA

B

C

D

E

F

G

H

Page 12: Chapter 8 Searching

12

Depth-First Search

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

A

HB

F

E

D

C

G

Visited NodeA

B

C

D √

E

F

G

H D

D

Page 13: Chapter 8 Searching

13

Depth-First Search

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

A

HB

F

E

D

C

G

Visited NodeA

B

C √

D √

E

F

G

H

CD

D C

Page 14: Chapter 8 Searching

14

Depth-First Search

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

A

HB

F

E

D

C

G

Visited NodeA

B

C √

D √

E

F

G

H DD C

Page 15: Chapter 8 Searching

15

Depth-First Search

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

A

HB

F

E

D

C

G

Visited NodeA

B

C √

D √

E √

F

G

H

ED

D C E

Page 16: Chapter 8 Searching

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

Page 17: Chapter 8 Searching

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

Page 18: Chapter 8 Searching

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

Page 19: Chapter 8 Searching

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

Page 20: Chapter 8 Searching

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

Page 21: Chapter 8 Searching

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

Page 22: Chapter 8 Searching

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

Page 23: Chapter 8 Searching

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

Page 24: Chapter 8 Searching

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

Page 25: Chapter 8 Searching

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

Page 26: Chapter 8 Searching

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

Page 27: Chapter 8 Searching

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

Page 28: Chapter 8 Searching

28

Exercise

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

A

HB

F

E

D

C

G

Page 29: Chapter 8 Searching

29

Breadth-First Search

Page 30: Chapter 8 Searching

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

Page 31: Chapter 8 Searching

31

Breadth-First Search

A

HB

F

E

D

C

G

Page 32: Chapter 8 Searching

32

Breadth-First Search

A

HB

F

E

D

C

G

D

Page 33: Chapter 8 Searching

33

Breadth-First Search

A

HB

F

E

D

C

G

DD-CD-ED-F

Page 34: Chapter 8 Searching

34

Breadth-First Search

A

HB

F

E

D

C

G

DD-CD-ED-FD-E-G

Page 35: Chapter 8 Searching

35

Breadth-First Search

A

HB

F

E

D

C

G

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

Page 36: Chapter 8 Searching

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

Page 37: Chapter 8 Searching

37

Depth-First Search VS Breadth-First Search

Sudoku

Page 38: Chapter 8 Searching

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

Page 39: Chapter 8 Searching

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 ในการส�บเปล��ยน

Page 40: Chapter 8 Searching

40

Depth-First Search VS Breadth-First Search

Maze

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

Page 41: Chapter 8 Searching

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

Page 42: Chapter 8 Searching

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