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

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

           รอบท​ ี่ 4 	บรรทัด​ท่ี 5 	 ตรวจส​ อบว​ ่า f1 ซ่ึง​มี​ค่า​เป็น 3 น้อยก​ ว่า n ซ่ึง​มี​ค่า​เท่ากับ 10 จริง

           	 บรรทัดท​ ี่ 7 	 ก�ำหนดค​ ่า f1 = 5 ซ่ึง​มาจ​ าก f1 ท่ีม​ ีค​ ่าเ​ดิมเ​ป็น 3 บวก​กับ f2 ซ่ึง​มี​ค่า​เป็น 2

           	 บรรทัดท​ ี่ 8 	 ก�ำหนด​ค่า f2 = 3 ซึ่ง​มา​จาก f1 ที่ม​ ีค​ ่า​เป็น 5 ลบ​กับ f2 ซึ่งม​ ีค​ ่าเ​ป็น 2

           	 บรรทัด​ท่ี 9 	 ก�ำหนดค​ ่า mid = 6 ซ่ึง​มาจ​ าก mid ท่ีม​ ีค​ ่า​เดิม​เป็น 5 บวกก​ ับ 1

           รอบท​ ่ี 5 	บรรทัดท​ ่ี 5 	 ตรวจ​สอบ​ว่า f1 ซึ่ง​มีค​ ่าเ​ป็น 5 น้อย​กว่า n ซ่ึง​มีค​ ่าเ​ท่ากับ 10 จริง

           	 บรรทัด​ท่ี 7 	 ก�ำหนด​ค่า f1 = 8 ซึ่ง​มา​จาก f1 ที่​มีค​ ่าเ​ดิมเ​ป็น 5 บวกก​ ับ f2 ซึ่งม​ ีค​ ่า​เป็น 3

           	 บรรทัดท​ ี่ 8 	 ก�ำหนดค​ ่า f2 = 5 ซ่ึงม​ าจ​ าก f1 ที่​มี​ค่าเ​ป็น 8 ลบ​กับ f2 ซึ่ง​มี​ค่าเ​ป็น 3

           	 บรรทัด​ท่ี 9 	 ก�ำหนดค​ ่า mid = 7 ซ่ึงม​ าจ​ าก mid ท่ี​มี​ค่าเ​ดิม​เป็น 6 บวกก​ ับ 1

           รอบท​ ่ี 6 	บรรทัด​ที่ 5 	 ตรวจ​สอบว​ ่า f1 ซึ่ง​มี​ค่า​เป็น 8 น้อยก​ ว่า n ซึ่งม​ ี​ค่าเ​ท่ากับ 10 จริง

           	 บรรทัดท​ ี่ 7 	 ก�ำหนดค​ ่า f1 = 13 ซ่ึงม​ าจ​ าก f1 ท่ี​มี​ค่า​เดิมเ​ป็น 8 บวกก​ ับ f2 ซ่ึงม​ ีค​ ่า​เป็น 5

           	 บรรทัดท​ ี่ 8 	 ก�ำหนดค​ ่า f2 = 8 ซ่ึง​มาจ​ าก f1 ที่​มี​ค่า​เป็น 13 ลบ​กับ f2 ซึ่ง​มี​ค่าเ​ป็น 5

           	 บรรทัด​ที่ 9 	 ก�ำหนดค​ ่า mid = 8 ซึ่งม​ า​จาก mid ท่ีม​ ีค​ ่าเ​ดิม​เป็น 7 บวกก​ ับ 1

           รอบ​ที่ 7 	บ รรทัด​ที่ 5 	 ตรวจส​ อบว​ ่า f1 ซ่ึงม​ ีค​ ่า​เป็น 13 น้อย​กว่า n ซ่ึงม​ ีค​ ่าเ​ท่ากับ 10 ไม่เ​ป็นจ​ ริง จึงส้ิน​สุด​

           		                                 การท�ำ​งา​นขอ​ งลูป while

           	 บรรทัด​ท่ี 11	 ปรับค​ ่า f2 เป็น 5 ซึ่ง​มา​จาก 13 – 8

           	 บรรทัด​ที่ 12 	 ปรับค​ ่า f1 เป็น 8 ซ่ึง​มาจ​ าก 13 – 5

           	 บรรทัด​ที่ 13 	 ปรับค​ ่า mid เป็น 7 ซ่ึง​มาจ​ าก 8 - 1

           	 บรรทัดท​ ี่ 14 	 ก�ำหนด​ค่า first เป็น 0

รอบ​ท่ี 1  	 บรรทัดท​ ี่ 15-33	ค้นหา​ค่าที่​ต้องการ x = 24

           index = 8 (index = first + f1 = 0 + 8)

           	 5	 9	 13	 17	 24	 29	 34	 38	 42	 53

                                                 f2 = 5                  index = 8
           บรรทัดท​ ่ี 18	 เงื่อนไข	 index >= n (8 >= 10) ไม่จ​ ริง             f1 = 8
           	 	 x < A[index] (24 < 38) จริง
           บรรทัดท​ ี่ 20	 mid = 6	(mid = 7 – 1)
           บรรทัดท​ ่ี 21	 f2 = 3	 (f2 = 8 – 5)
           บรรทัด​ที่ 22	 f1 = 5 	 (f1 = 8 – 3)
   59   60   61   62   63   64   65   66   67   68