ออร์เดอร์ทั้งหมดของขนาดเกี่ยวข้องกับค่าคงที่ซึ่งจริง ๆ แล้วหลายคำสั่ง เมื่อจำนวนรายการมีขนาดใหญ่พอที่คงที่ไม่เกี่ยวข้อง คำถามคือจำนวนรายการมีขนาดเล็กเพียงพอสำหรับค่าคงที่ที่จะครองหรือไม่C
นี่เป็นวิธีที่มองเห็นได้
ทั้งหมดมีค่าคงที่เริ่มต้นซึ่งกำหนดจุดเริ่มต้นของพวกเขาบนแกน Y แต่ละคนยังมีความสำคัญอย่างต่อเนื่องครอบครองวิธีการที่รวดเร็วพวกเขาจะเพิ่มขึ้นC
- สำหรับ , CกำหนดเวลาO ( 1 )C
- คือ C × nจริงๆโดยที่ CกำหนดมุมO ( n )C× nC
- คือจริง ๆ ( C × n ) 2โดยที่ Cกำหนดความคมชัดของเส้นโค้งO ( n2)( C× n )2C
ในการกำหนดอัลกอริทึมที่คุณควรใช้คุณต้องประเมินจุดที่รันไทม์ตัดกัน ตัวอย่างเช่นโซลูชันที่มีเวลาเริ่มต้นสูงหรือCสูงจะสูญเสียไปยังโซลูชันO ( n )ด้วยเวลาเริ่มต้นที่ต่ำและCต่ำที่จำนวนรายการค่อนข้างมากO ( 1 )CO ( n )C
นี่คือตัวอย่างโลกแห่งความจริง คุณต้องย้ายก้อนอิฐไปตามลาน คุณสามารถเคลื่อนย้ายพวกมันทีละครั้งด้วยมือของคุณหรือไปรับแบ็คโฮขนาดใหญ่ที่ช้าเพื่อยกและขับเคลื่อนพวกมันในการเดินทางครั้งเดียว คุณมีคำตอบอะไรถ้ามีอิฐสามก้อน คุณมีคำตอบอย่างไรถ้ามีสามพัน
นี่คือตัวอย่าง CS สมมติว่าคุณต้องการรายการที่เรียงลำดับอยู่เสมอ คุณสามารถใช้ต้นไม้ที่จะให้ตัวเองในการสั่งซื้อสำหรับ ) หรือคุณอาจจะใช้รายการที่ไม่ได้เรียงลำดับและการจัดเรียงใหม่ทุกครั้งหลังการแทรกหรือลบที่O ( n log n ) เนื่องจากการดำเนินการต้นไม้มีความซับซ้อน (มีค่าคงที่สูง) และการเรียงลำดับนั้นง่ายมาก (ค่าคงที่ต่ำ) รายการมีแนวโน้มที่จะชนะได้หลายร้อยหรือหลายพันรายการO ( บันทึกn )โอ( n บันทึกn )
คุณสามารถมองสิ่งนี้ได้ แต่ในที่สุดการเปรียบเทียบก็คือสิ่งที่จะทำ คุณต้องดูว่าคุณมีสิ่งของกี่ชิ้นและลดความเสี่ยงที่จะถูกมอบให้มากขึ้น คุณจะต้องการจัดทำเอกสารสมมติฐานของคุณเช่น "ประสิทธิภาพจะลดลงอย่างรวดเร็วในรายการ " หรือ "เราถือว่าขนาดชุดสูงสุดเป็นX "XX
เนื่องจากข้อกำหนดเหล่านี้อาจมีการเปลี่ยนแปลงจึงเป็นสิ่งสำคัญที่จะต้องตัดสินใจเรื่องเหล่านี้หลังอินเทอร์เฟซ ในตัวอย่างต้นไม้ / รายการด้านบนอย่าเปิดเผยต้นไม้หรือรายการ ด้วยวิธีนี้หากสมมติฐานของคุณผิดหรือคุณพบอัลกอริทึมที่ดีกว่าคุณสามารถเปลี่ยนใจได้ คุณสามารถทำไฮบริดและสลับอัลกอริธึมแบบไดนามิกเมื่อจำนวนรายการเพิ่มขึ้น