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

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

ก�ำหนดค​ ่า​เริ่ม​ต้น
    f1	 = 	1
    f2	 = 	0
    mid	 = 	2

ก�ำหนดค​ ่าข​ อบบ​ นใ​ห้​เป็น​ตัวเลขม​ ากท​ ี่สุด​ท่ี​น้อยก​ ว่า n พร้อม​ท้ังก​ �ำหนดข​ อบล​ ่าง

รอบท่ี f1 < n           f1              f2                                                        mid
                        (f1 = f1 + f2)  (f2 = f1 – f2)                                            (mid = mid + 1)
 1 true
             (1 < 10)   1               1                                                         3
                        (f1 = 1 + 0)    (f2 = 1 – 0)                                              (mid = 2 + 1)
 2 true
             (1 < 10)   2               1                                                         4
                        (f1 = 1 + 1)    (f2 = 2 – 1)                                              (mid = 3 + 1)
 3 true
             (2 < 10)   3               2                                                         5
                        (f1 = 2 + 1)    (f2 = 3 – 1)                                              (mid = 4 + 1)
 4 true
             (3 < 10)   5               3                                                         5
                        (f1 = 3 + 2)    (f2 = 5 – 2)                                              (mid = 4 + 1)
 5 true
             (5 < 10)   8               5                                                         6
                        (f1 = 5 + 3)    (f2 = 8 – 3)                                              (mid = 5 + 1)
 6 true
             (8 < 10)   13              8                                                         7
                        (f1 = 8 + 5)    (f2 = 13 – 5)                                             (mid = 6 + 1)
 7 false
             (13 < 10)

ตารางข​ ้าง​ต้นแ​ สดง​ค่าก​ ารท​ �ำ​งา​นขอ​ งลูป while (บรรทัด​ท่ี 5-10) ดังน้ี
รอบ​ท่ี 1 	บรรทัด​ที่ 5 	ตรวจ​สอบว​ ่า f1 ซึ่ง​มีค​ ่าเ​ร่ิม​ต้นเ​ป็น 1 น้อย​กว่า n ซึ่งม​ ี​ค่า​เท่ากับ 10 จริง
	 บรรทัด​ท่ี 7 	ก�ำหนดค​ ่า f1 = 1 ซึ่ง​มา​จาก f1 ท่ีม​ ี​ค่าเ​ดิม​เป็น 1 บวกก​ ับ f2 ซึ่งม​ ีค​ ่า​เป็น 0
	 บรรทัด​ที่ 8 	ก�ำหนดค​ ่า f2 = 1 ซึ่งม​ า​จาก f1 ท่ีม​ ีค​ ่า​เป็น 1 ลบ​กับ f2 ซึ่งม​ ี​ค่า​เป็น 0
	 บรรทัด​ที่ 9 	ก�ำหนดค​ ่า mid = 3 ซ่ึง​มา​จาก mid ท่ีม​ ีค​ ่า​เดิมเ​ป็น 2 บวก​กับ 1
รอบท​ ่ี 2	บรรทัดท​ ี่ 5 	ตรวจส​ อบว​ ่า f1 ซึ่ง​มี​ค่า​เป็น 1 น้อย​กว่า n ซ่ึง​มีค​ ่า​เท่ากับ 10 จริง
	 บรรทัด​ท่ี 7 	ก�ำหนด​ค่า f1 = 2 ซ่ึง​มาจ​ าก f1 ท่ีม​ ี​ค่าเ​ดิมเ​ป็น 1 บวก​กับ f2 ซึ่ง​มี​ค่าเ​ป็น 1
	 บรรทัดท​ ี่ 8 	ก�ำหนดค​ ่า f2 = 1 ซึ่ง​มา​จาก f1 ที่​มี​ค่า​เป็น 2 ลบ​กับ f2 ซึ่ง​มี​ค่าเ​ป็น 1
	 บรรทัดท​ ่ี 9 	ก�ำหนดค​ ่า mid = 4 ซ่ึง​มา​จาก mid ท่ี​มีค​ ่าเ​ดิม​เป็น 3 บวก​กับ 1
รอบ​ท่ี 3 	บรรทัดท​ ่ี 5 	ตรวจ​สอบว​ ่า f1 ซึ่ง​มีค​ ่า​เป็น 2 น้อยก​ ว่า n ซ่ึงม​ ีค​ ่า​เท่ากับ 10 จริง
	 บรรทัด​ที่ 7 	ก�ำหนด​ค่า f1 = 3 ซึ่งม​ าจ​ าก f1 ท่ีม​ ีค​ ่าเ​ดิมเ​ป็น 2 บวกก​ ับ f2 ซึ่ง​มี​ค่า​เป็น 1
	 บรรทัด​ที่ 8 	ก�ำหนด​ค่า f2 = 2 ซ่ึงม​ าจ​ าก f1 ที่ม​ ีค​ ่า​เป็น 3 ลบ​กับ f2 ซึ่งม​ ี​ค่าเ​ป็น 1
	 บรรทัด​ที่ 9 	ก�ำหนดค​ ่า mid = 5 ซ่ึง​มาจ​ าก mid ท่ีม​ ี​ค่า​เดิมเ​ป็น 4 บวกก​ ับ 1
   58   59   60   61   62   63   64   65   66   67   68