Page 30 - โครงสร้างข้อมูลและขั้นตอนวิธี
P. 30
15-20 โครงสร้างข ้อมูลและขั้นต อนวิธี
Function LinearSearch (A, n, x)
1 BEGIN
2 FOR i := 1 TO n DO
3 BEGIN
4 IF A[i] = x then
5 RETURN i
6 ELSE IF x < A[i] THEN
7 RETURN -1
8 END
9 RETURN -1
10 END
การท �ำงาน
บรรทัดที่ 2-8 ก�ำหนดการท �ำซ้ําจ�ำนวน n ครั้ง โดยเริ่มต ้ังแต่สมาชิกต ัวแรก
บรรทัดที่ 4 เปรียบเทียบข้อมูลที่ส ืบค้นก ับค่าป ัจจุบันข องอาร์เรย์
บรรทัดท ี่ 5 ถ้าเง่ือนไขบ รรทัดที่ 4 เป็นจ ริง ให้ส่งค่าก ลับเป็นต �ำแหน่งที่พบ
บรรทัดท่ี 6 เปรียบเทียบข้อมูลที่ส ืบค้นว ่าน ้อยก ว่าค ่าป ัจจุบันของอาร์เรย์ห รือไม่
บรรทัดท ี่ 7 ถ้าเงื่อนไขบรรทัดท ี่ 6 เป็นจริง ให้ส่งค ่ากลับเป็นต �ำแหน่งท่ีไม่พ บคือ -1
บรรทัดท ี่ 9 ถ้าท �ำซํ้าจนค รบท ุกส มาชิกแล้วไม่พบ ให้ส่งค่ากลับเป็นต�ำแหน่ง -1
3. ตวั อยา่ งก ารท �ำ งานข องข ้ันตอนว ธิ ีการค้นหาขอ้ มูลแบบเรียงล�ำ ดับ
ตวั อย่างท ่ี 15.6 จงแ สดงก ารค้นหาข ้อมูลด้วยวิธีการค ้นหาแบบเรียงล �ำดับ จากข ้อมูลท ี่ก�ำหนดให้ต ่อไปนี้
ก�ำหนดให้
A = [5, 24, 33, 43, 68, 73, 90, 91]
n = 8
x = 34
รอบท ี่ 1
5 24 33 43 68 73 90 91
i = 1, A[1] = 5
X = 34
- เปรียบเทียบค่าส มาชิกต ัวแ รกโดยมีค ่าดัชนี i = 1, A[1] = 5 กับ 34 ซ่ึงไม่เท่ากัน
- เปรียบเทียบค ่า x = 34 กับค่า 5 ซ่ึงค ่า x มากกว่า ให้เปรียบเทียบค่าถ ัดไป