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

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

       การท​ �ำงาน
       โปรแกรม​มี​การท​ �ำงาน 3 ขั้นต​ อนห​ ลัก​ดังน้ี
       - 	ก�ำหนดค​ ่า​เริ่ม​ต้น
       - 	หา​ช่วง​ที่​น่า​จะม​ ี​ข้อมูลท​ ่ีส​ ืบค้น
       - 	สืบค้น​ข้อมูลภ​ ายใน​ช่วงท​ ี่ก​ �ำหนด
       ก�ำหนดค​ ่าเ​ริม่ ​ต้น

            บรรทัดท​ ี่ 2 	 ก�ำหนด​ค่าก​ ารกร​ ะ​โดด k ให้​เท่ากับ n
            บรรทัดท​ ี่ 3 	 ก�ำหนดค​ ่า​การก​ระ​โดด​ครั้งแ​ รกใ​ห้เ​ป็น k
            บรรทัดท​ ี่ 4 	 ก�ำหนดค​ ่า​ต�ำแหน่งก​ ่อน​การกร​ ะโ​ดดใ​ห้​เป็น prev
       หา​ชว่ ง​ทนี่​ า่ จ​ ะ​มี​ข้อมูล​ท​่ีสืบคน้
            บรรทัดท​ ่ี 5-9 	ก�ำหนด​ให้​ท�ำ​ซ้ําตราบ​ใด​ท่ี​ค่า ณ ต�ำแหน่ง​ท่ี​กระโดด น้อย​กว่า​ค่าท่ี​สืบค้น และ​ค่าท​ี่

                         กระโดดไ​ปไม่เ​กินจ​ �ำนวน​ข้อมูลท​ ี่ม​ ี
            บรรทัดท​ ี่ 7 	 ก�ำหนด​ให้​ค่า​ก่อน​กระโดด prev เท่ากับ​ค่าท่ีก​ ระโดด step
            บรรทัด​ที่ 8 	 ก�ำหนด​ให้การก​ ระโดด step คร้ัง​ต่อไ​ปเ​ป็น step + k
            หลัง​จาก​ท�ำ​ซ้ําบรรทัด​ที่ 5–9 จะ​ได้​ช่วง​ของ​ข้อมูล​ที่​คาด​ว่า​จะ​พบ​ข้อมูล​ท่ี​สืบค้น ซ่ึง​ค่า prev จะ​เก็บ​
ต�ำแหน่งก​ ่อน​การก​ระโ​ดดค​ รั้งส​ ุดท้าย
            บรรทัดท​ ี่ 10 	 ถ้า​ค่าก​ ารกร​ ะ​โดด​คร้ัง​สุดท้าย มากกว่าจ​ �ำนวน​ข้อมูลท​ ่ี​มี
            บรรทัด​ที่ 11 	 ให้การ​กระโดดค​ ร้ังส​ ุดท้าย step ไป​ท่ี​ต�ำแหน่งข​ ้อมูล​ตัวส​ ุดท้าย​คือ n
            บรรทัดท​ ี่ 13 	 ถ้าข​ ้อมูลท​ ี่​ต�ำแหน่งส​ ุดท้ายเ​ท่ากับ​ค่าท่ี​สืบค้น
            บรรทัดท​ ี่ 14 	 ให้ส​ ่งค​ ่าก​ ลับเ​ป็น​ค่าข​ อง step
       สืบค้น​ขอ้ มูล​ภายในช​ ว่ ง​ที่ก​ �ำหนด
            ขั้นต​ อน​ต่อ​ไป​น้ี​เป็นการค​ ้นหา​แบบเ​รียง​ล�ำดับโ​ดย​เริ่มจ​ าก​ต�ำแหน่ง prev
            บรรทัดท​ ี่ 16-20	ก�ำหนด​ให้ท​ �ำ​ซํ้าตราบ​ใดท​ ่ี​ค่า​ปัจจุบัน​ของ​อาร์เรย์ ยังน​ ้อยก​ ว่าค​ ่าท่ีต​ ้องการค​ ้นหา x
            บรรทัด​ที่ 17 	 เลื่อน​ต�ำแหน่ง​ข้อมูล​ท่ี​จะต​ รวจส​ อบไ​ป​อีก 1 ต�ำแหน่ง
            บรรทัดท​ ี่ 18 	 ตรวจ​สอบ​ต�ำแหน่ง​ที่​เล่ือน​มาเ​ป็น​ต�ำแหน่ง​ของ step หรือไ​ม่
            บรรทัด​ที่ 19 	 ถ้า​ใช่ แสดงว​ ่าไ​ม่มี​ข้อมูล​ท่ี​สืบค้นใ​ห้ส​ ่งค​ ่าก​ ลับ​เป็น -1

            ขั้นต​ อน​ต่อ​ไปน​ ี้​เป็นการต​ รวจ​สอบ​ครั้ง​สุดท้ายว​ ่า ต�ำแหน่ง​ปัจจุบันเ​ป็นข​ ้อมูลท​ ี่ส​ ืบค้นห​ รือไ​ม่
            บรรทัด​ที่ 22 	 ตรวจ​สอบว​ ่า​ข้อมูล​ท่ี​สืบค้น​เท่ากับข​ ้อมูลท​ ี่ต​ �ำแหน่ง prev หรือ​ไม่
            บรรทัด​ที่ 23 	 ถ้าเ​ท่า​กัน ให้ส​ ่งค​ ่า​กลับเ​ป็น​ต�ำแหน่ง prev
            บรรทัดท​ ี่ 25 	 ถ้าข​ ้อมูล​ที่ส​ ืบค้นไ​ม่​เท่ากับ​ข้อมูล​ท่ีต​ �ำแหน่ง prev ให้ส​ ่งค​ ่าก​ ลับเ​ป็น​ต�ำแหน่ง -1
   43   44   45   46   47   48   49   50   51   52   53