ความซับซ้อนของเวลาเป็นวิธีหนึ่งในการสรุปว่าจำนวนการดำเนินการหรือเวลาทำงานของอัลกอริทึมเพิ่มขึ้นอย่างไรเมื่อขนาดอินพุตเพิ่มขึ้น
เช่นเดียวกับสิ่งส่วนใหญ่ในชีวิตปาร์ตี้ค็อกเทลสามารถช่วยให้เราเข้าใจ
บน)
เมื่อคุณมาถึงงานปาร์ตี้คุณต้องจับมือทุกคน (จัดการทุกรายการ) ขณะที่จำนวนของผู้เข้าร่วมประชุมN
เพิ่มเวลา / O(N)
การทำงานก็จะพาคุณไปเขย่าของทุกคนเพิ่มขึ้นเป็นมือ
ทำไมO(N)
ไม่cN
?
มีการเปลี่ยนแปลงในระยะเวลาที่ใช้ในการจับมือกับผู้คน c
คุณสามารถเฉลี่ยนี้ออกและจับมันในอย่างต่อเนื่อง แต่การดำเนินการขั้นพื้นฐานที่นี่ - จับมือกับทุกคน - จะเป็นสัดส่วนเสมอO(N)
ไม่ว่าอะไรc
จะเกิดขึ้น เมื่อถกเถียงกันว่าเราควรจะไปงานเลี้ยงค็อกเทลบ่อยครั้งเราสนใจในข้อเท็จจริงที่ว่าเราจะต้องพบกับทุกคนมากกว่าในรายละเอียดของการประชุมเหล่านั้น
O (n ^ 2)
โฮสต์ของปาร์ตี้ค็อกเทลต้องการให้คุณเล่นเกมที่งี่เง่าที่ทุกคนพบกับคนอื่น ดังนั้นคุณต้องพบN-1
คนอื่นและเพราะคนต่อไปได้พบคุณแล้วพวกเขาจะต้องพบปะN-2
ผู้คนและอื่น ๆ x^2/2+x/2
ผลรวมของชุดนี้คือ เมื่อจำนวนผู้เข้าร่วมเพิ่มขึ้นเรื่อย ๆx^2
เทอมนั้นใหญ่ขึ้นอย่างรวดเร็วดังนั้นเราจึงทิ้งทุกอย่างไว้
O (n ^ 3)
คุณต้องพบกับคนอื่นและในการประชุมแต่ละครั้งคุณต้องพูดคุยเกี่ยวกับคนอื่นในห้อง
O (1)
โฮสต์ต้องการประกาศบางสิ่งบางอย่าง พวกเขาจิ้มแก้วไวน์และพูดเสียงดัง ทุกคนได้ยินพวกเขา ปรากฎว่าไม่สำคัญว่ามีผู้เข้าร่วมประชุมกี่รายการดำเนินการนี้ใช้เวลาเท่ากันเสมอ
O (บันทึก N)
โฮสต์ได้จัดวางทุกคนไว้ที่โต๊ะตามลำดับตัวอักษร แดนอยู่ที่ไหน คุณให้เหตุผลว่าเขาจะต้องอยู่ที่ไหนสักแห่งระหว่างอดัมและแมนดี้ (ไม่ใช่แน่นอนระหว่างแมนดี้และซัค!) ระบุว่าเขาอยู่ระหว่างจอร์จกับแมนดี้หรือไม่? ไม่เขาต้องอยู่ระหว่างอาดัมกับเฟร็ดและระหว่างซินดี้กับเฟร็ด และอื่น ๆ ... เราสามารถค้นหา Dan ได้อย่างมีประสิทธิภาพโดยดูที่ครึ่งชุดจากนั้นครึ่งหนึ่งของชุดนั้น ในท้ายที่สุดเรามองไปที่O (log_2 N)บุคคล
O (N log N)
คุณสามารถหาตำแหน่งที่จะนั่งลงที่โต๊ะโดยใช้อัลกอริทึมด้านบน ถ้าเป็นจำนวนมากของผู้คนมาถึงโต๊ะหนึ่งที่เวลาและทุกทำอย่างนี้ว่าจะใช้เวลาO (n log n)เวลา สิ่งนี้กลายเป็นว่าต้องใช้เวลานานแค่ไหนในการเรียงลำดับการรวบรวมรายการใด ๆ เมื่อต้องเปรียบเทียบ
กรณีที่ดีที่สุด / แย่ที่สุด
คุณมาถึงงานปาร์ตี้และต้องการหา Inigo - ใช้เวลานานเท่าไหร่? ขึ้นอยู่กับว่าคุณมาถึงเมื่อไหร่ หากทุกคนกำลังโวยวายไปรอบ ๆ คุณได้พบกับกรณีที่เลวร้ายที่สุดมันต้องใช้O(N)
เวลา แต่ถ้าทุกคนนั่งลงที่โต๊ะก็จะใช้เวลาเพียงO(log N)
เวลา หรือบางทีคุณอาจจะสามารถใช้ประโยชน์จากพลัง Wineglass-ตะโกนของโฮสต์และมันจะใช้เวลาเพียงO(1)
เวลา
สมมติว่าโฮสต์ไม่พร้อมใช้งานเราสามารถพูดได้ว่าอัลกอริทึมการค้นหา Inigo มีขอบเขตล่างO(log N)
และขอบบนของO(N)
ขึ้นอยู่กับสถานะของพรรคเมื่อคุณมาถึง
อวกาศและการสื่อสาร
แนวคิดเดียวกันนี้สามารถนำไปใช้กับการทำความเข้าใจวิธีที่อัลกอริทึมใช้พื้นที่หรือการสื่อสาร
Knuth ได้เขียนกระดาษที่ดีเกี่ยวกับอดีตสิทธิ"ความซับซ้อนของเพลง"
ทฤษฎีบทที่ 2: มีเพลงที่ซับซ้อนตามอำเภอใจยาว O (1)
หลักฐาน: (เนื่องจาก Casey and the Sunshine Band) พิจารณาเพลง Sk ที่กำหนดโดย (15) แต่ด้วย
V_k = 'That's the way,' U 'I like it, ' U
U = 'uh huh,' 'uh huh'
สำหรับ k ทั้งหมด