- เผยแพร่เมื่อ
บิ๊ก โอ โนเตชั่น 101: ความลับในการเขียนอัลกอริทึมที่มีประสิทธิภาพ
- ผู้เขียน

- ชื่อ
- AbnAsia.org
- @steven_n_t
ตั้งแต่การดำเนินการอาร์เรย์แบบง่ายไปจนถึงอัลกอริทึมการเรียงลำดับที่ซับซ้อน การเข้าใจการแสดง Big O เป็นสิ่งสำคัญสำหรับการสร้างโซลูชันซอฟต์แวร์ที่มีประสิทธิภาพสูง

1 - O(1)
นี่คือการแสดงเวลาคงที่ (constant time notation) เวลาที่ใช้ในการทำงานจะคงเท่าเดิม ไม่ว่าขนาดของข้อมูลเข้าจะเท่าใด ตัวอย่างเช่น การเข้าถึงองค์ประกอบในอาร์เรย์โดยใช้ดัชนี และการแทรก/ลบองค์ประกอบในตารางแฮช
2 - O(n)
การแสดงเวลาที่เป็นเส้นตรง (linear time notation) เวลาที่ใช้ในการทำงานจะเพิ่มขึ้นตามขนาดของข้อมูลเข้าโดยตรง ตัวอย่างเช่น การค้นหาค่าสูงสุดหรือต่ำสุดในอาร์เรย์ที่ไม่ได้เรียงลำดับ
3 - O(log n)
การแสดงเวลาที่เป็นลอการิทึม (logarithmic time notation) เวลาที่ใช้ในการทำงานจะเพิ่มขึ้นอย่างช้าๆ เมื่อขนาดของข้อมูลเข้าเพิ่มขึ้น ตัวอย่างเช่น การค้นหาแบบทวินาม (binary search) ในอาร์เรย์ที่เรียงลำดับ และการดำเนินการในต้นไม้แบบทวินามที่สมดุล
4 - O(n^2)
การแสดงเวลาที่เป็นกำลังสอง (quadratic time notation) เวลาที่ใช้ในการทำงานจะเพิ่มขึ้นอย่างรวดเร็วตามขนาดของข้อมูลเข้า ตัวอย่างเช่น อัลกอริทึมการเรียงลำดับแบบง่ายๆ เช่น bubble sort, insertion sort และ selection sort
5 - O(n^3)
การแสดงเวลาที่เป็นลูกบาศก์ (cubic time notation) เวลาที่ใช้ในการทำงานจะเพิ่มขึ้นอย่างรวดเร็วเมื่อขนาดของข้อมูลเข้าเพิ่มขึ้น ตัวอย่างเช่น การคูณเมทริกซ์แบบหนาแน่นโดยใช้อัลกอริทึมแบบง่ายๆ
6 - O(n logn)
การแสดงเวลาที่เป็นลิเนียริทมิก (linearithmic time notation) นี่คือการผสมผสานระหว่างการเติบโตแบบเส้นตรงและลอการิทึม ตัวอย่างเช่น อัลกอริทึมการเรียงลำดับที่มีประสิทธิภาพ เช่น merge sort, quick sort และ heap sort
7 - O(2^n)
การแสดงเวลาที่เป็นเลขชี้กำลัง (exponential time notation) เวลาที่ใช้ในการทำงานจะเพิ่มขึ้นเป็นสองเท่าสำหรับแต่ละองค์ประกอบใหม่ของข้อมูลเข้า ตัวอย่างเช่น อัลกอริทึมแบบเรียกซ้ำ (recursive algorithm) ที่แก้ปัญหาโดยแบ่งปัญหาเป็นปัญหาย่อยๆ
8 - O(n!)
การแสดงเวลาที่เป็นตัวประกอบ (factorial time notation) เวลาที่ใช้ในการทำงานจะเพิ่มขึ้นอย่างรวดเร็วเมื่อขนาดของข้อมูลเข้าเพิ่มขึ้น ตัวอย่างเช่น ปัญหาการสร้างลำดับ (permutation-generation problem)
9 - O(sqrt(n))
การแสดงเวลาที่เป็นรากที่สอง (square root time notation) เวลาที่ใช้ในการทำงานจะเพิ่มขึ้นตามรากที่สองของขนาดของข้อมูลเข้า ตัวอย่างเช่น การค้นหาในพิสัย (range search) เช่น การใช้ Sieve of Eratosthenes ในการค้นหาตัวประกอบเฉพาะทั้งหมดจนถึง n
โปรดทราบว่าเวอร์ชันภาษาไทยได้รับการช่วยเหลือจาก AI ดังนั้นอาจมีข้อผิดพลาดเล็กน้อย
ผู้เขี���น
Ai Base Network (ABN), ABN ASIA ถูกก่อตั้งขึ้นโดยคนที่มีรากฐานลึกในวงการวิชาการ มีประสบการณ์การทำงานในสหรัฐอเมริกา ดัตช์ ฮังการี ญี่ปุ่น เกาหลีใต้ สิงคโปร์ และเวียดนาม ABN Asia เป็นที่เราพบกันของวิทยาลัยและเทคโนโลยี ด้วยโซลูชันขั้นสูงและบริการพัฒนาซอฟต์แวร์ที่มีความสามารถ เราช่วยธุรกิจเติบโตและเข้าสู่ฉากโลก ความมุ่งมั่นของเรา: ด่วนขึ้น ดีขึ้น น่าเชื่อถือมากขึ้น ในกรณีส่วนมาก: ราคาถูกด้วย
หากคุณต้องการบริการ IT การให้คำปรึกษาดิจิทัล โซลูชันซอฟต์แวร์ใช้ได้หรือหากคุณต้องการส่งคำขอข้อเสนอ (RFPs) อย่าลังเลที่จะติดต่อเรา คุณสามารถติดต่อเราได้ที่ [email protected] เราพร้อมช่วยเหลือคุณด้านทุกความต้องกรทางเทคโนโลยีของคุณทุกเมื่อ

© ABN ASIA