ใช่สำหรับขนาดเล็กที่เหมาะสม N จะมี N ด้านบนซึ่งคุณจะมีลำดับ O (1) <O (lg N) <O (N) <O (N log N) <O (N ^ c ) <O (c ^ N) (โดยที่ O (1) <O (lg N) หมายความว่าที่อัลกอริทึม O (1) จะทำงานน้อยลงเมื่อ N มีขนาดใหญ่พอสมควรและ c เป็นค่าคงที่คงที่ที่มากกว่า 1 )
สมมติว่าอัลกอริทึมเฉพาะ O (1) ใช้การดำเนินงาน f (N) = 10 ^ 100 (a googol) อย่างแน่นอนและอัลกอริทึม O (N) ใช้ g (N) = 2 N + 5 การดำเนินการทุกประการ อัลกอริทึม O (N) จะให้ประสิทธิภาพที่ดีกว่าจนกว่าคุณ N จะเป็น googol (โดยทั่วไปเมื่อ N> (10 ^ 100 - 5) / 2) ดังนั้นหากคุณคาดหวังว่า N จะอยู่ในช่วง 1,000 ถึงพันล้านคุณ จะได้รับโทษอย่างรุนแรงโดยใช้อัลกอริทึม O (1)
หรือสำหรับการเปรียบเทียบที่เหมือนจริงสมมติว่าคุณกำลังคูณตัวเลข n หลักด้วยกัน Karatsuba อัลกอริทึมที่มากที่สุด 3 n ^ (LG 3) การดำเนินงาน (นั่นคือประมาณ O (n ^ 1.585)) ในขณะที่ขั้นตอนวิธี schonhage-strassenเป็น O (n log n log log n) ซึ่งเป็นคำสั่งซื้อได้เร็วขึ้นแต่จะอ้าง วิกิพีเดีย:
ในทางปฏิบัติอัลกอริธึมSchönhage – Strassen เริ่มมีประสิทธิภาพสูงกว่าวิธีเก่าเช่น Karatsuba และ Toom – Cook การคูณสำหรับตัวเลขที่เกิน 2 ^ 2 ^ 15 ถึง 2 ^ 2 ^ 17 (10,000 ถึง 40,000 ทศนิยม) [4] [5] [6] ]
ดังนั้นหากคุณคูณตัวเลข 500 หลักด้วยกันมันไม่สมเหตุสมผลเลยที่จะใช้อัลกอริธึมที่ "เร็วขึ้น" โดยอาร์กิวเมนต์ O ขนาดใหญ่
แก้ไข: คุณสามารถค้นหา f (N) เปรียบเทียบ g (N), โดยการ จำกัด N-> อนันต์ของ f (N) / g (N) หากขีด จำกัด คือ 0 ดังนั้น f (N) <g (N), ถ้าขีด จำกัด นั้นไม่มีที่สิ้นสุดดังนั้น f (N)> g (N), และถ้าขีด จำกัด เป็นค่าคงที่อื่นแล้ว f (N) ~ g (N) ในแง่ของสัญกรณ์ O ใหญ่