[MITx: 6.00.1x] Introduction to Computer Science and Programming Using Python (Week 6) – Algorithm + Big O

สำหรับ Blog ในตอนนี้ จากที่เรียนมาทั้งหมด พวกว่าทุกคนอยากให้ Code ที่เขียนขึ้นมามีแนวคิดการทำงานต่างกัน หรือที่มีคำเท่ห์ที่เรียกว่า Algorithm ส่วนทำได้มีประสิทธิผล( Performance) และถูกต้อง แล้วอะไรที่บอกว่าเร็วหละ ตอนนี้เน้นส่วนเรื่องที่บอกว่าเร็ว Performance ดี เรามองได้ใน 2 มุมมอง การมาวัดมันมีหลายแบบ เช่น จับเวลา, นับ Operation ที่ใช้ หรือแม้แต่การดูพื้นที่ที่ใช้ไป แต่มันมีปัญหาจุกจิกมากมาย ทั้งที่เรื่องจำนวนข้อมูลนำเข้า(Data Set) และ Enviroment(เช่น พวก Hardware ต่างๆ) ในทาง Computer Science ก็เลยมี Idea ในการวัดอีกแบบ คือ Abstract Notation Order of Growth ครับ Abstract Notation Order of Growth คือ อะไร ⚡แล้วเรามองมุมไหนดีหละ ⚡ปกติ เราสนใจเคสที่แย่ที่สุดครับ โดยตัว Order of Growth สามารถแบ่งกลุ่มได้ ดังนี้ ⚡เราตีความ Algorithm โดยใช้วิธีการที่เป็นมาตรฐาน โดยมีหลักการนับ ดังนี้ Note: สำหรับในเคส Loop ที่มีเงื่อนไขมาเกี่ยวข้อง เราต้องคิดแยก Case ฺBest Case และ Worst Case TIP: การดู Order of Growth เราไม่สามารถมองจุดเดียวแล้วบอกได้เลย เราต้องไล่การทำของ Code ในสาย Software Engineering เรียกว่า Control Flow จากนั้นจึงค่อยมาจาก Best Case และ Worst Case ของโปรแกรม ⚡ตัวอย่างการคำนวณของ Fibonacci Note: เห็นว่าแต่ละวิธี…








