chapter 8 searching
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 PresentationTRANSCRIPT
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