View
55
Download
0
Category
Preview:
DESCRIPTION
โครงสร้างข้อมูล. Data Structure. การค้นหาข่าวสาร (Information Search) การค้นหาข่าวสารแบบซีเควนเชียล (Sequential Search) การค้นหาข่าวสารแบบขจัดครึ่ง ( Binary Search) ตารางที่มีโครงสร้างแบบต้นไม้ การปลิดโหนดจากตารางโครงสร้างต้นไม้ไบนารี. การค้นหาข่าวสาร ( Information Search) - PowerPoint PPT Presentation
Citation preview
DATA STRUCTURE
โครงสร�างข้�อมู�ล
การค�นหาข้�าวสาร (Information Search)การค�นหาข้�าวสารแบบซี�เควนเชี�ยล
(Sequential Search)
การค�นหาข้�าวสารแบบข้จั�ดคร��ง (Binary Search)
ตารางที่��มู�โครงสร�างแบบต�นไมู�การปล#ดโหนดจัากตารางโครงสร�างต�นไมู�
ไบนาร�
การค�นหาข้�าวสาร (Information Search)ร�ปแบบข้องข้�อมู�ลข้�าวสารที่��จั�ดเก$บ
อย��ในร�ปแบบตาราง (table), array, link-listอย��ในร�ปแบบตารางที่��มู�โครงสร�างแบบต�นไมู�
การค�นหาข้�อมู�ลข้�&นอย��ก�บล�กษณะการเก$บข้�อมู�ล และอ�ลกอร#ที่�มูที่��ใชี�ได�
ส*าหร�บการจั�ดเก$บข้�อมู�ล แต�ละแบบน�&นกรณ�ข้�อมู�ลอย��บนความูจั*าหล�กที่�&งหมูด การค�นหาจัะเร$ว
หร+อชี�า ข้�&นอย��ก�บจั*านวนคร�&งในการเปร�ยบเที่�ยบ
การค�นหาข้�าวสาร (Information Search)
ล�กษณะข้องข้�าวสารที่��จัะค�นหาข้�อมู�ลที่��จั�ดเก$บ จัะมู�ส�วนที่��เป,นค�ย- (key) และส�วนที่��เป,นเน+&อหาส�วนที่��เป,นเน+&อหาอาจัรวมูอย��ก�บส�วนที่��เป,นค�ย- เร�ยกรวมูว�าเป,น
record
ในบางกรณ�ถ้�า record มู�ข้นาดใหญ่�มูาก อาจัมู�การเก$บค�ย-แยกออกจัาก record แล�วเชี+�อมูหาก�นได�ด�วย pointer
ค�ย-หล�กข้องข้�อมู�ลเราเร�ยกว�า primary key นอกน�&นเร�ยก secondary key
การจั�ดการข้�อมู�ลเราที่*าได�ที่� &ง เพิ่#�มู(insert) แก�ไข้ , ลบออก (delete) ได�
การค�นหาข้�าวสารแบบซี�เควนเชี�ยล (เร�ยงล*าด�บ)การค�นหาจัะเป,นการเที่�ยบค�ย-ไปที่�ละรายการจันพิ่บ
กรณ�ที่��ด�ที่��ส1ด : เปร�ยบเที่�ยบค�ย- 1 คร�&งแล�วพิ่บ (ค�ย-อย��ต�วแรก)กรณ�แย�ที่��ส1ด : เปร�ยบเที่�ยบค�ย- n คร�&งแล�วพิ่บ (ค�ย-อย��ต�วส1ดที่�าย)กรณ�เฉล��ยที่��วไป : เปร�ยบเที่�ยบค�ย- n/2 คร�&ง
ข้�อด�ค+อการเก$บข้�อมู�ลเป,นแบบธรรมูดา ค�ย-ไมู�ต�องเร�ยงล*าด�บ เพิ่#�มู/ลบข้�อมู�ลง�าย
ข้�อเส�ยค+อการค�นหาจัะเป,นไปได�ค�อนข้�างชี�าหากข้�อมู�ลมู�จั*านวนมูาก
การค�นหาข้�าวสารแบบข้จั�ดคร��ง (Binary Search)การค�นหาจัะรวดเร$วข้�&น ค�นหาโดยการแบ�งที่�ละคร��ง
หล�กการค�ย-จัะต�องเร�ยงล*าด�บจัากน�อยไปมูาก (หร+อมูากไปน�อย)การเปร�ยบเที่�ยบโดยการแบ�งคร��งแล�วเที่�ยบว�าอย��คร��งแรก
หร+อคร��งหล�ง
การค�นหาข้�าวสารแบบข้จั�ดคร��งร�ปแบบการค�นหา
k1, k2, …, kmid-1, kmid, kmid+1, …,kn
ถ้�า ki < Kmid ถ้�า ki > kmid
key อย��คร��งแรก key อย��คร��งหล�ง
อ�ลกอร#ที่�มูในการค�นหา
ตารางที่��มู�โครงสร�างแบบต�นไมู�การสร�างตารางมูาจัากแนวความูค#ดแบบต�นไมู�ไบนาร� มู� Lson
และ Rsonค�า k-Lson < k-Node < k-Rson
การค�นหาข้�อมู�ลโดยว#ธ� Binary Search Tree
เป,นการสร�างตารางจัากชี1ดค�ย-ที่��เข้�ามูา โดยให�ต�วแรกเป,นร�ตค�าถ้�ดไปที่��เข้�ามูา หากน�อยกว�าให�อย�� Lsonถ้�ามูากกว�าให�อย�� Rson แต�ถ้�ามู�อย��แล�วก$ให�เที่�ยบถ้�ดต�อไปจัาก Lson หร+อ Rson จันกว�าจัะ
หมูด
Binary Search Tree
หร+อ
โครงสร�างโหนดข้อง Binary Search Tree อาจัอย��ในร�ปแบบค�ย- และเรคคอร-ด หร+อแบบค�ย-ก�บพิ่�อยน-เตอร-ไปหาเรคคอร-ดก$ได�
ด�ต�วอย�างการสร�าง binary search tree
Key Pointer
Lson Rson
Key Record
Lson Rson
การปล#ดโหนด(ลบ ) จัากตารางโครงสร�างต�นไมู�ไบนาร�หล�กการ
ต�องร�กษาความูส�มูพิ่�นธ-ระหว�างโหนดแบบ binary search tree ไว�ได�
โหนด Lson จัะต�องมู�ค�าน�อยกว�า Rsonเมู+�อที่�องต�นไมู�แบบอิ�นอิอิร์�เดอิร์� จัะได�ชี1ดล*าด�บข้องโหนดเร�ยงจัากน�อยไปมูาก
ข้�&นตอนในการปล#ดโหนดปล#ดโหนดที่��เป,นใบ (leaf node)ปลดโหนดที่��มู�ต�นไมู�ย�อยด�านซี�าย หร+อมู�ต�นไมู�ย�อยด�านข้วา
การปล#ดโหนดที่��เป,นโหนดใบ (leaf Node)เราสามูารถ้ปล#ดโหนดที่��เป,นใบได�เลย เพิ่ราะไมู�กระที่บร�ปแบบ
binary search tree เพิ่ราะย�งคงหล�กการที่��ก*าหนดไว�ได�
โหนดที่��เราจัะปล#ดได�โดยไมู�กระที่บหล�กการค+อโหนดที่�� 7, 24 28 42, ,
22
8
5
7
25
24 29
28 42
22
8
5
7
25
24 29
28 42
การปล#ดโหนดที่��มู�ต�นไมู�ย�อยด�านซี�าย หร+อมู�ต�นไมู�ย�อยด�านข้วาข้�&นตอนมู�ด�งน�&
เมู+�อปล#ดโหนดที่#&งไป โหนดที่��จัะมูาแที่นที่��ค+อโหนดที่��เป,นเพิ่+�อนบ�านถ้�ดไป (แบบอ#นออร-เดอร-)
และโหนดที่��อย��ต�อจัากเพิ่+�อนบ�านลงไป จัะกลายเป,น left subtree ข้องโหนดที่��เป,นพิ่�อเด#มูข้องโหนดเพิ่+�อนบ�านน�&
การปล#ดโหนดที่��มู�ต�นไมู�ย�อยด�านซี�ายหร+อมู�ต�นไมู�ย�อยด�านข้วาเร�ยงโหนดแบบอ#นออร-เดอร-ค+อ 7 8 21 22, , , ,
25282942, , ,ต�องการปล#ดโหนด 25เพิ่+�อนบ�านข้องโหนด 25ค+อ
โหนด 2822
8
7
25
21 29
28 42
22
8
7
28
21 29
42ก�อนปล#ด
หล�งปล#ดโหนด 25
การปล#ดโหนดที่��มู�ต�นไมู�ย�อยด�านซี�ายหร+อมู�ต�นไมู�ย�อยด�านข้วา27
15
11
35
24 40
36 45
38
37 39
30
27
15
11
36
24 40
4538
37 39
30
ก�อนปล#ดโหนด 35
หล�งปล#ดโหนด 35
Extended Binary Search Treeในการค�นหาค�ย-ในต�นไมู�ไบนาร� หากเราต�องการร� �ถ้�ง
จั*านวนการเปร�ยบเที่�ยบเพิ่+�อให�ได�ค�าค�ย-ที่��ต�องการ เราจัะต�องก*าหนดจั1ดจับแต�ละโหนดที่��เป,นโหนดใบ หร+อโหนดที่��ไมู�มู� lson/rson
ค*านวณหาระยะที่างเด#นที่�&งส#&นเพิ่+�อจัะบอกจั*านวนคร�&งที่��ต�องเปร�ยบเที่�ยบ ที่�&งในกรณ�ที่��หาเจัอ หร+อหาไมู�เจัอ
ว#ธ�การเพิ่+�อที่��จัะให�ได�ส�ตรด�งข้�างบนเราจัะต�องสร�างส�วนต�อข้องต�นไมู� (extended binary search tree)
Extended Binary Search Tree
27
15
11
35
24 40
36 45
38
37 39
30
เมู+�อเราที่*าการต�อโหนดใบที่1กโหนด และโหนดที่��ข้าด lson หร+อข้าด rson
Extended Binary Search Treeการค*านวณจัะน#ยามู 2ค�าเพิ่+�อมูาใชี�ในส�ตร
ค�า internal path length (i) ค+อผลรวมูข้องความูยาวที่างเด#นจัากร�ตโหนดถ้�งโหนดภายใน (โหนดวงกลมู)Node level No of node Path length Total length
1 (27) 1 0 0
2 (15,35) 2 1 2
3 (11,24,30,40) 4 2 8
4 (36,45) 2 3 6
5 (38) 1 4 4
6 (37,39) 2 5 10
i = 0 + 2 + 8 + 6 + 4 + 10 = 30
Extended Binary Search Treeค�า external path length (e) ค+อผลรวมูข้องความูยาวที่างเด#นจัากร�ตโหนดถ้�งโหนดส��เหล��ยมู
Node level No of node Path length Total length
4 6 3 18
5 3 4 12
7 4 6 24
e = 18 + 12 + 24 = 54
total length = no of node x path length
Extended Binary Search Treeเมู+�อเราต�องการหาค�าค�ย-ใดค�ย-หน��งในต�นไมู�น�& ความูเป,น
ไปได�ในการค�นหาเราจัะได�ว�าCs (found) = i + n
nCf (fail) = e
n + 1i ค+อค�า internal path length รวมูe ค+อค�า external path length รวมูn ค+อจั*านวนโหนดใน binary search tree (โหนดวงกลมู)
Extended Binary Search Tree
27
15
11
35
24 40
36 45
38
37 39
30
i = 30, e = 54, n = 12
ค�าเฉล��ยข้องจั*านวนคร�&งในการค�นหาพิ่บ
Cs = (30+12) / 12 = 3.5
ค�าเฉล��ยข้องจั*านวนคร�&งที่��จัะค�นหาไมู�พิ่บ
Cf = 54 / (12 + 1) = 4.1
Recommended