Big O Notation คืออะไร? ทำความเข้าใจใน 1 นาที | Simply Explained! - LearnAlgorithm
NEW 7-Days Fundamentals Class #3 เปิดแล้ว เรียนจบไม่ต้องจ่าย
Simply Explained! August 8, 2025
|
3 mins read

Big O Notation คืออะไร? ทำความเข้าใจใน 1 นาที

เมื่อสิ่งที่สำคัญกว่าเร็วหรือช้า คืออัตราการเติบโตของ cost เทียบกับ input size

Big O Notation คืออะไร? ทำความเข้าใจใน 1 นาที

“สมมุติว่าบริษัทคุณไปจ้างฟรีแลนซ์คนหนึ่งให้ช่วยพัฒนาระบบอะไรสักอย่างให้”

ฟรีแลนซ์คนนั้นตอบกลับมาว่า ระบบเดียวกันนี้สามารถพัฒนาได้สองแบบคือ

  1. แบบแรกมีค่าพัฒนา 100,000 บาท และถ้ามีคนใช้ระบบนี้ 10 คน จะมีค่าใช้จ่ายในการรัน 100 บาทต่อเดือน
  2. แบบที่สองมีค่าพัฒนา 200,000 บาท และถ้ามีคนใช้ระบบนี้ 10 คน จะมีค่าใช้จ่ายในการรัน 100 บาทต่อเดือน (เท่ากับแบบแรก)

ถ้าคุณเป็นเจ้าของบริษัท คุณจะจ้างฟรีแลนซ์ทำระบบไหนขึ้นมา?

จะมีใครจะเลือกแบบที่สองหล่ะใช่ม่ะ …แต่!! ถ้าเราบอกว่า

  1. แบบแรกมีค่าพัฒนา 100,000 บาท และถ้ามีคนใช้ระบบนี้ \(n\) คน จะมีค่าใช้จ่ายในการรัน \(n^2\) บาทต่อเดือน
  2. ส่วนแบบที่สองมีค่าพัฒนา 200,000 บาท และถ้ามีคนใช้ระบบนี้ \(n\) คน จะมีค่าใช้จ่ายในการรัน \(10n\) บาทต่อเดือน

จะเห็นว่าเมื่อ \(n = 10\) ทั้งสองจะมีค่าใช้จ่ายเท่ากัน แต่ลองคิดว่าถ้ามีคนใช้ระบบนี้ 100 คนหล่ะ แบบแรกเราจะต้องเสียค่าใช้ 10,000 บาทต่อเดือน ในขณะที่แบบที่สองเราจะเสียค่าใช้จ่ายแค่ 1,000 บาทต่อเดือนเท่านั้น

และยิ่ง \(n\) มีค่ามากขึ้นไปเรื่อย ๆ แบบที่สองก็จะถูกกว่าแบบแรกแบบเทียบไม่ติด

(หรือสรุปได้ว่า แบบแรก cost โตแบบ \(n^2\) หรือ quadratic ในขณะที่แบบที่สอง cost โตแบบ \(n\) หรือ linear เมื่อ n มีค่ามาก ๆ)

“สิ่งที่สำคัญกว่าเร็วหรือช้า คืออัตราการเติบโตของ cost เทียบกับ input size”

จากตัวอย่างข้างต้นจะเห็นได้ว่าเมื่อเรารู้อัตราการเติบโต ไม่ใช่แค่ว่ามันจะทำให้เราสามารถตัดสินใจได้ดีขึ้น แต่มันยังทำให้เราวางแผนได้ด้วยว่า

“โอเคในตอนแรกพัฒนาแบบแรกก่อนเพราะถูกกว่า แล้วพอเรามีคนใช้งานถึง 10 คนเมื่อไหร่ ค่อนเริ่มพัฒนาแบบที่สอง”

การเขียนโปรแกรมก็เช่นกันที่เราต้องตัดสินใจว่าจะ implement algorithm A หรือ B ซึ่งแต่ละตัวก็มีต้นทุนในการพัฒนา และ growth rate ของ computational cost (time/space) เมื่อเทียบกับ input size ที่ต่างกัน

Big O Notation คือ “คำศัพท์” คำนึงในภาษาที่มีชื่อว่า “คณิตศาสตร์” ที่ใช้ในการอธิบาย “อัตราการเติบโตของ computation เมื่อ input size มีค่ามาก ๆ ว่ามันจะทำตัวแบบไหนนั่นเอง”

Chun Rapeepat

Rapeepat Kaewprasit (Chun)

คน ๆ หนึ่งที่ชื่นชอบในการสร้าง การทำธุรกิจ และการได้ลองทำอะไรใหม่ ๆ ไปเรื่อย ๆ