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

15-44 โครงสร้างข​ ้อมูล​และข​ ั้น​ตอนว​ ิธี

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

                 Value

A[right]

     x
 A[left]

                  left 	 step	              right  Index

ภาพท​ ่ี 15.13 กราฟเ​สน้ ​ตรง​แสดงค​ วาม​สมั พันธ​์ระหว่างค​ า่ ​ของข​ อ้ มลู แ​ ละอ​ ินเ​ด็กซ​ ข์​ อง​อาร์เรย์

       จากก​ ราฟ​น�ำ​มาส​ร้าง​สมการเ​ส้น​ตรงผ​ ่าน​จุด (left, A[left]) และ (right, A[right]) และแ​ ก้​สมการ​หาค​ ่า step
จะ​ได้

step  =   left +  (x-A[left]) (right-left)
                   A[right] – A[left]

       หลังจ​ าก​เปรียบเ​ทียบ​ค่า x กับค​ ่า A[step] แล้ว​การด​ �ำเนินก​ าร​ต่อไ​ปเ​ป็น​ดังนี้
            - 	ขั้น​ตอน​วิธีจ​ ะห​ ยุด​ถ้า​ค่า​ทั้ง​สอง​เท่าก​ ัน หรือ
            -	 จะ​ท�ำ​ต่อ​ไป​โดย​การ​ค้นหา​จาก​ข้อมูล​ของ​อาร์เรย์​ระหว่าง​ต�ำแหน่ง left และ step-1 ถ้า x น้อย​กว่า

A[step] หรือ
            -	 จะท​ ำ� ​ตอ่ ไ​ปโ​ดยก​ ารค​ น้ หาจ​ ากข​ อ้ มลู ข​ องอ​ ารเ์ รยร​์ ะหวา่ งต​ ำ� แหนง่ step+1 และ right ถา้ ค​ า่ x มากกวา่

A[step]
   49   50   51   52   53   54   55   56   57   58   59