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

15-50 โครงสร้างข​ ้อมูล​และข​ ั้นต​ อนว​ ิธี  2	     3	 5	         8	 13	                                   ...

     Fibonacci Number
      	 0	 1	 1	

	 5	 9	 13	 17	 24	 29	 34	 38	 42	 53

                         ขอบล่าง = 5                    ขอบบน = 8

                       ภาพ​ที่ 15.14 การก​ �ำ หนด​ชว่ ง​การเ​ปรียบเ​ทยี บโ​ดย​ใช​้ตัวเ​ลข​ฟิ​โบนกั ซี

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

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

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

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

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

ข้อมูล​ที่ส​ ่งก​ ลับ
ถ้าพ​ บข​ ้อมูลท​ ่ี​สืบค้น	 ค่าที่ส​ ่งก​ ลับจ​ ะ​เป็นต​ �ำแหน่งข​ อง​ข้อมูลใ​นอ​ าร์เรย์
ถ้า​ไม่พ​ บข​ ้อมูล​ที่ส​ ืบค้น	 ค่าที่​ส่ง​กลับจ​ ะเ​ป็น​ต�ำแหน่งท​ ่ี​ไม่มีจ​ ริงใ​น​อาร์เรย์​น้ันคือ -1
   55   56   57   58   59   60   61   62   63   64   65