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)