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

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

เร่ืองท​ ่ี 15.1.4
การ​คน้ หาข​ อ้ มลู แ​ บบท​ วภิ าค

       การ​ค้นหาแ​ บบ​ทวิภาค (binary search) เป็นว​ ิธีก​ ารค​ ้นหาท​ ่ี​ใช้​กับข​ ้อมูลท​ ่ี​มีก​ าร​เรียงล​ �ำดับเ​รียบร้อยแ​ ล้ว โดย​
จะ​แบ่ง​ข้อมูล​ออก​เป็น​2 ​ส่วน แล้ว​พิจารณา​ดู​ว่า​ข้อมูล​ควร​อยู่​ท่ี​ส่วน​ใด แล้ว​จึง​แบ่ง​ข้อมูล​ส่วน​น้ัน​ออก​อีก​เป็น​2 ​ส่วน
ข้อมูล​จะ​ถูก​แบ่ง​ย่อย​ลง​ไป​ครั้ง​ละ​2 ส่วน​เรื่อยๆ จน​พบ​ข้อมูล​หรือ​หมด​ข้อมูล​ท่ี​จะ​สืบค้น ตัวอย่าง​ของ​วิธี​การ​น้ี​คือ​
การ​เล่น​เกมร​ ะหว่างค​ น 2 คน โดย​สมมติ​ให้​คน​หนึ่ง​ช่ือ A และ​อีก​คน​ชื่อ B โดยก​ �ำหนด​ให้ A นึก​เลข​อะไร​ก็ได้​ระหว่าง
1 ถึง 100 แล้ว​ให้ B เป็น​คน​ทาย โดย A จะเ​ป็นค​ นบ​ อกว​ ่าม​ ากกว่าห​ รือน​ ้อย​กว่า สมมติ​ว่า B นึกถึงเ​ลข 30 ข้ันต​ อน​แบบ​
ทวิภาคจ​ ะ​เป็นด​ ัง​ภาพ​ที่ 15.6

B                                                    A
ทาย: 50 (50 คือค่ากึ่งกลางระหว่าง 1-100)             ตอบ: มากไป
ทาย: 25 ( 25 คือค่ากึ่งกลางระหว่าง 1–49              ตอบ: น้อยไป

     ทั้งนี้เนื่องจาก 50-100 ไม่ใช่เลขเป้าหมาย)      ตอบ: มากไป
ทาย: 37 (37 คือค่าประมาณกึ่งกลางระหว่าง 26-49)       ตอบ: มากไป
ทาย: 31 (31 คือค่ากึ่งกลางระหว่าง 26-36)             ตอบ: น้อยไป
ทาย: 28 (28 คือค่ากึ่งกลางระหว่าง 26-30)             ตอบ: น้อยไป
ทาย: 29 (29 คือค่าประมาณกึ่งกลางระหว่าง 29-30)       ตอบ: ถูกต้อง
ทาย: 30 (30 คือค่ากึ่งกลางระหว่าง 30-30)

                          ภาพท​ ี่ 15.6 ขน้ั ต​ อนก​ าร​ทาย​ตวั เลขร​ ะหวา่ ง A และ B

1. 	โครงสรา้ ง​ขอ้ มูลของการค้นหาขอ้ มูลแบบทวภิ าค

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

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

ข้อมูล​เข้าป​ ระกอบ​ด้วย
อาร์เรย์​ข้อมูล​ที่เ​รียงล​ �ำดับไ​ว้แ​ ล้ว	 A
จ�ำนวน​ข้อมูล​ทั้งหมด               	n

ค่าที่ต​ ้องการค​ ้นหา	                      x
   28   29   30   31   32   33   34   35   36   37   38