ข้อผิดพลาดของ Dev มือใหม่หลาย ๆ คน เมื่อเริ่มต้นลองฝึกเขียนโค้ดอาจจะเข้าใจว่าเราจะต้องทำให้โค้ดรันได้ไวที่สุด และวิธีที่ใช้วิธีนี้แหละจะต้องถูกเสมอ ซึ่งในความเป็นจริงแล้ว วิธีที่เราคิดว่าไวสุดอาจไม่ได้ดีที่สุด และ วิธีที่มั่นใจว่าเวิร์กก็อาจไม่เหมาะกับทุกสถานการณ์เสมอไป!

แต่เราจะรู้ได้ยังไงล่ะ ว่าตอนไหนควรจะเลือกอะไรถึงเวิร์ก? 

Algorithm Essentials: Bridging Theory and Real-World Practice | Skooldio

ทำความรู้จัก Algorithm 

Algorithm คือ กระบวนการ ขั้นตอนที่ใช้ในการแก้ปัญหา โดยจุดประสงค์หลักของ Algorithm คือการให้เราแก้ปัญหาที่เราเจอได้อย่างมี ‘ขั้นตอน’ และทำให้ได้ผลลัพธ์ที่ถูกต้อง 

ยกตัวอย่างง่าย ๆ หากเปรียบเทียบกับชีวิตของคนเรา ในชีวิตเราจะต้องเจอสถานการณ์ที่ต้องตัดสินใจมากมาย เช่น ตัดสินใจว่าจะใช้วิธีการเดินทางแบบไหนมาออฟฟิศดี จะขึ้นทางด่วนดีไหม หรือจะนั่งรถไฟฟ้ามาดีนะ จนบางทีเราก็สงสัยว่าต้องเลือกทางไหน วิธีไหนจึงจะถูกต้องที่สุด ซึ่งคำตอบคือ ‘ทุกวิธีถูกต้อง’

อย่าเพิ่งตกใจไป เรามาดูกันว่าถ้าเป็นอย่างนั้นแล้วเราจะรู้ Algorithm ไปทำไม 

แม้แต่ละวิธีจะถูกต้อง แต่เมื่อเราดูดี ๆ จะพบว่าหากสถานการณ์หรือสิ่งแวดล้อมเปลี่ยนไป ประสิทธิภาพของวิธีการที่เราเคยใช้มันก็อาจจะไม่เวิร์ก เช่น การขึ้นทางด่วนที่เรามองว่าน่าจะเร็วที่สุด หากวันนั้นดันเป็นวันที่เปิดให้ขึ้นฟรี มีรถเยอะมาก การจราจรติดขัด ในวันนั้นตัวเลือกทางด่วนอาจไม่ใช่วิธีที่เวิร์กที่สุดอีกต่อไป ดังนั้นถ้าเราสามารถเข้าใจและเลือกใช้ Algorithm ได้อย่างถูกต้อง เหมาะกับสถานการณ์ ก็จะช่วยเพิ่มประสิทธิภาพในการทำงานของเราได้สูงขึ้นนั่นเอง


โดยการวัดว่า การทำงานของ Algorithm นั้นดีหรือไม่ดี ก็สามารถวัดได้โดยการดู metrics ต่าง ๆ เช่น Accuracy หรือความแม่นยำของ Algorithm, Space Complexity หรือ หน่วยความจำที่ Algorithm นั้นจะใช้งาน และ Time Complexity คือเวลาที่ Algorithm ใช้ในการ run เป็นต้น ซึ่งวิธีวัด Time Complexity และ Space Complexity แบบหนึ่งก็คือ Big O นั่นเอง

อะไรคือ Big O

Big O คือหน่วยวัดอัตราการเติบโตของ Algorithm ซึ่งมีสัญลักษณ์เป็นตัว O ตามด้วยวงเล็บซึ่งข้างในอาจเป็นตัวเลขหรือตัวอักษร n ที่เป็นการวัดแนวโน้มว่า เมื่อ input มีขนาดมากขึ้นเรื่อย ๆ Algorithm นั้นจะช้าลงเร็วขนาดไหน

เพื่อให้เห็นภาพเราลองเปรียบเทียบ Big O กับรถแข่ง ที่ทุกคันเคลื่อนที่ในระยะ n กิโลเมตรเท่ากันหมด (โดย n ในที่นี้มีค่ามาก ๆ ลู่เข้า infinity) โดยแต่ละคันจะมีความเร็วไม่เท่ากัน ซึ่งความเร็วที่ไม่เท่ากันนั้น = Big O ยกตัวอย่างเช่น 

1. 🚘 รถคันที่ 1 👉 O(1) Constant time : ไม่ว่าระยะทางใกล้ไกลแค่ไหน ก็ใช้เวลาเดินทางถึงที่หมายเท่ากัน เช่น 1 km ใช้ 1 นาที ต่อให้ต้องเดินทาง 10 km ก็ยังใช้ 1 นาทีเหมือนเดิม

2. 🚘 รถคันที่ 2 👉 O(n) Linear time : เหมือนรถทั่วไป ขับไกลขึ้นก็ใช้เวลานานขึ้น เช่น 1 km ใช้ 1 นาที / 10 km ใช้ 10 นาที 

3. 🚘 รถคันที่ 3 👉 O(n²) Quadratic time : ยิ่งขับ ยิ่งช้า เช่น 1 km ใช้ 1 นาที / 2 km ใช้ 4 นาที / และ 4 km ใช้ 16 นาที

โดย Big O ยังมีอีกหลากหลายรูปแบบ ซึ่งทั้ง 3 ตัวที่หยิบยกมาข้างต้นนี้ก็จะเป็นตัวที่มักพบเจอบ่อย ๆ นั่นเอง


ถ้าอยากเรียนรู้เพิ่มเติมเกี่ยวกับ Algorithm ห้ามพลาด !  คอร์ส Algorithm Essentials: Bridging Theory and Real-World Practice

Algorithm Essentials: Bridging Theory and Real-World Practice | Skooldio

คอร์สออนไลน์นี้จะทำคุณให้เข้าใจ ได้ทดลองลงมือปฏิบัติผ่าน Mini Workshop พร้อมเสริมเทคนิคในการออกแบบและเลือกใช้ Algorithm ที่มีประสิทธิภาพสำหรับการแก้ปัญหาในการเขียนโปรแกรมได้ดียิ่งขึ้น 🤩

พิเศษ! ลดไปเลย 200 บาท ใส่โค้ด CH_200_AGR ส่วนลดมีจำนวนจำกัด รีบสมัครก่อนสิทธิ์เต็ม คลิก Algorithm Essentials: Bridging Theory and Real-World Practice 

Algorithm Essentials: Bridging Theory and Real-World Practice | Skooldio

More in:Technology

Comments are closed.