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

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

       ข้อมูลท​ ี่ส​ ่ง​กลับ
            ค่าท่ีน​ ้อย​ท่ีสุดจ​ าก​ข้อมูลท​ ั้งหมด​ใน​อาร์เรย์

 Function MinSearch (A, n)
  1 BEGIN
  2 	 x := A[1]
  3 	 FOR i := 2 TO n DO
  4 	 BEGIN
  5 	 IF A[i] < x THEN
  6 		 x := A[i]
  7 	END
  8 	RETURN x
  9 END

       การท​ �ำงาน
       บรรทัด​ที่ 2	​ก�ำหนดใ​ห้ส​ มาชิกต​ ัวแ​ รก​เป็น​ค่าน​ ้อยส​ ุด
       บรรทัด​ที่ 3-7 	ก​ �ำหนดการท​ �ำ​ซํ้าเริ่ม​ตั้งแต่ส​ มาชิกต​ ัว​ท่ี 2 จนถึง n
       บรรทัด​ที่ 5 	 เปรียบเ​ทียบ​ค่า​น้อยส​ ุด (x) กับ​ค่าป​ ัจจุบันข​ องอ​ าร์เรย์ (A[i])
       บรรทัดท​ ่ี 6 	 ถ้า​ค่า​ปัจจุบัน​ของอ​ าร์เรย์น​ ้อยก​ ว่า เปล่ียนค​ ่า​น้อยท​ ี่สุดใ​ห้เ​ป็น​ค่า​ปัจจุบันข​ องอ​ าร์เรย์
       บรรทัด​ท่ี 7 	 ย้อนก​ ลับ​ไปท​ �ำ​บรรทัดท​ ่ี 3 โดยเปล่ียน​ค่า​ดัชนีใ​ห้​ช้ีตัว​ถัดไ​ป
       บรรทัด​ที่ 8 	 ถ้าท​ �ำ​ซํ้าจนค​ รบท​ ุกส​ มาชิก​แล้ว​ให้​ส่งค​ ่าก​ ลับ​เป็นค​ ่า​น้อย​ท่ีสุด
       จาก​ตัวอย่าง​ท่ี 15.4 และ 15.5 ใน​การ​ประยุกต์​ใช้​ฟังก์ชัน​แบบ​บรูทฟ​อร์​ซน้ัน ขั้น​ตอน​วิธี​การ​เหมือน​เดิม​คือ​
เปรียบเ​ทียบข​ ้อมูลก​ ับส​ มาชิกท​ ีล​ ะต​ ัว ส่วนท​ ่ีต​ ่างก​ ันค​ ือ ในก​ ารค​ ้นหาข​ ้อมูลน​ ้ันค​ ่าที่ต​ ้องการค​ ้นหาถ​ ูกส​ ่งม​ าเ​ป็นข​ ้อมูลเ​ ข้า​
ของ​ฟังก์ชัน BruteForceSearch ส่วน​การ​หา​ค่า​น้อย​ท่ีสุดแ​ ละม​ ากท​ ี่สุด​นั้น​ฟังก์ชัน MinSearch และ MaxSearch ใช้​
สมาชิก​ตัว​แรก​ของ​อาร์เรย์​ใน​การ​เปรียบ​เทียบ​กับ​สมาชิก​ที่​เหลือ​ของ​อาร์เรย์ นอกจาก​นี้​เงื่อนไข​การ​เปรียบ​เทียบ​ของ​
ฟังก์ชัน BruteForceSearch ต้องการ​ความ​เหมือน​จึง​ใช้​เคร่ืองหมาย “=” ส่วน​ฟังก์ชัน MinSearch ต้องการ​หา​ค่าท่​ี
น้อย​ที่สุด​จึง​ใช้​เครื่องหมาย “<” และ​ฟังก์ชัน MaxSearch ต้องการ​หา​ค่า​มาก​ท่ีสุด​จึง​ใช้​เคร่ืองหมาย “>” นอกจาก​น้ี
ฟังก์ชัน BruteForceSearch เม่ือ​พบ​ข้อมูล​ที่​ต้องการ​แล้ว​ส่ง​ค่า​กลับ​ทันที ส่วน​ฟังก์ชัน MinSearch และ​ฟังก์ชัน
MaxSearch ต้องค​ ้นหาจ​ นถึง​สมาชิกต​ ัวส​ ุดท้าย

  กิจกรรม 15.1.2
         1. 	 โคด้ ​ของฟ​ งั ก์ชัน MinSearch และ MaxSearch ต่างก​ นั อ​ ยา่ งไร
         2. 	 กรณ​ีแยท่​ ีส่ ุด​ของ​ข้ัน​ตอนว​ ธิ ี​บรทู ฟอ​ ร์ซเ​กิดข​ ึ้น​เมอ่ื ใ​ด

  แนว​ตอบก​ จิ กรรม 15.1.2
         1. 	 ตา่ งก​ ัน​ตรง​บรรทัด​ที่ 5 ฟังกช์ นั MinSearch เปรยี บ​เทยี บ A[i] < x สว่ น​ฟงั กช์ ัน MaxSearch เปรยี บ​

  เทยี บ A[i] > x
         2. 	 กรณแี​ ยท​่ ส่ี ุดเ​กดิ ​ขึน้ ​เม่อื ข​ ้อมลู ท​ ี่​ตอ้ งการ​ค้นหา​ไม่มอี​ ย่ใ​ู น​อารเ์ รย์ห​ รอื ​เปน็ ข​ ้อมลู ต​ ัว​สดุ ท้าย
   23   24   25   26   27   28   29   30   31   32   33