FindMin

การหาค่าน้อยสุดในอาเรย์ทำได้ง่าย ๆ ด้วยวงวนเปรียบเทียบข้อมูลไปเรื่อย ๆ โดยมีตัวแปรตัวหนึ่งเก็บค่าน้อยสุดเท่าที่รู้มา นั่นคือ เมื่อวิ่งจากตัวที่ 0 ถึง k จะได้ ตัวน้อยสุดของข้อมูลตั้งแต่ตัวที่ 0 ถึง k เมื่อพิจารณาตัวใหม่ (ตัวที่ k+1) ถ้าพบว่ามีค่าน้อยกว่าตัวน้อยสุดเท่าที่รู้มา ก็เปลี่ยน ถ้าตัวใหม่ไม่น้อยกว่า ก็ไม่ต้องเปลี่ยน

นอกจากวิธีง่าย ๆ นี้ บางคนอาจเขียนแบบ recursive ซึ่งก็เขียนได้หลายแบบ การทดลองข้างล่างนี้ เราเขียนให้ดู 3 แบบ (รวมแบบง่ายข้างต้น) เพื่อแสดงให้เห็นว่า ไม่ว่าจะเขียนลูกเล่นขนาดใด ก็ใช้จำนวนการเปรียบเทียบข้อมูลเท่ากัน นั่นคือ มีข้อมูล n ตัว ต้องใช้การเปรียบเทียบ n-1 ครั้ง


สมชาย ประสิทธิ์จูตระกูล