Page 23 - โครงสร้างข้อมูลและขั้นตอนวิธี
P. 23

ขั้นต​ อน​วิธีก​ ารค​ ้นหาข​ ้อมูล 15-13

1. 	โครงสรา้ ง​ขอ้ มลู ของการค้นหาข้อมลู แบบบรทู ฟอรซ์

       ส�ำหรับโ​ครงสร้างข​ ้อมูล​ที่ใ​ช้ใ​น​การค​ ้นหา​แบบบ​ รูทฟอ​ ร์ซ นั้นจ​ ะ​เป็นแ​ บบอ​ าร์เรย์ห​ รือ​ลิงค์ล​ ิสต์​ก็ได้​โดย​ข้อมูล​
ไม่​จ�ำเป็นต​ ้อง​มีก​ ารจ​ ัด​เรียงม​ าก​ ่อน

2. 	ข้นั ต​ อนว​ ธิ กี ารค้นหาแบบบรูทฟอร์ซ
ขั้นต​ อน​วิธี BruteForceSearch มีร​ ายล​ ะเอียด​ดังนี้

ข้อมูลเ​ข้า​ประกอบด​ ้วย

อาร์เรย์​ข้อมูล 	                    A

จ�ำนวนข​ ้อมูลท​ ั้งหมด 	 n

ค่าที่​ต้องการค​ ้นหา	               x

ข้อมูลท​ ่ีส​ ่งก​ ลับ
ถ้าพ​ บข​ ้อมูล​ท่ีส​ ืบค้น	 ค่าที่​ส่ง​กลับจ​ ะ​เป็นต​ �ำแหน่งข​ อง​ข้อมูลใ​น​อาร์เรย์
ถ้าไ​ม่​พบ​ข้อมูล​ที่ส​ ืบค้น	 ค่าที่ส​ ่งก​ ลับ​จะเ​ป็นต​ �ำแหน่ง​ท่ี​ไม่มีจ​ ริงใ​น​อาร์เรย์​น่ันคือ -1

Function BruteForceSearch (A, n, x)

 1 BEGIN
 2 	 FOR i :=1 TO n DO
 3 	 BEGIN
 4 		 IF A[i] = x THEN
 5 			 RETURN i
 6 	 END
 7 	 RETURN -1
 8 END

การท​ �ำงาน
บรรทัด​ที่ 2-6	เป็นการ​ก�ำหนดการ​ท�ำ​ซ้ําจ�ำนวน n ครั้ง ​โดย​ให้​ตัวแปร i เป็น​อิน​เด็ก​ซ์​และ​ก�ำหนด​ค่า​เร่ิม​ต้น​

            เป็น 1
บรรทัดท​ ี่ 4 	 เปรียบ​เทียบข​ ้อมูลท​ ี่​สืบค้นก​ ับ​ค่า​ปัจจุบันข​ อง​อาร์เรย์
บรรทัดท​ ี่ 5 	 ถ้า​ใช่ ให้​ส่งค​ ่า​กลับเ​ป็น​ต�ำแหน่ง​ท่ี​พบ
บรรทัด​ที่ 6 	 ย้อน​กลับไ​ป​ท�ำ​บรรทัด​ท่ี 2 โดย​เปลี่ยนค​ ่า​ดัชนี​ให้ช​ ี้ตัวถ​ ัด​ไป
บรรทัดท​ ี่ 7 	 ถ้าท​ �ำ​ซํ้าบรรทัดท​ ่ี 2 ถึง 6 จนค​ รบ​ทุก​สมาชิก​แล้ว​ไม่พ​ บ​ให้ส​ ่ง​ค่า​กลับ​เป็น​ต�ำแหน่ง -1
   18   19   20   21   22   23   24   25   26   27   28