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