ความซับซ้อนทั้งหมดที่คุณให้นั้นเป็นจริง แต่จะได้รับในรูปแบบBig Oดังนั้นค่าเพิ่มเติมและค่าคงที่ทั้งหมดจะถูกละเว้น
เพื่อตอบคำถามของคุณเราจำเป็นต้องมุ่งเน้นไปที่การวิเคราะห์อย่างละเอียดของอัลกอริทึมทั้งสองนั้น การวิเคราะห์นี้สามารถทำได้ด้วยมือหรือพบได้ในหนังสือหลายเล่ม ฉันจะใช้ผลที่ได้จากศิลปะนูของการเขียนโปรแกรมคอมพิวเตอร์
จำนวนการเปรียบเทียบโดยเฉลี่ย:
- การจัดเรียงฟอง :12( N2- NLNยังไม่มีข้อความ- ( γ+ ln2 - 1 ) N) + O ( N--√)
- การเรียงลำดับการแทรก :14( N2- N) + N- ชยังไม่มีข้อความ
- ตัวเลือกการจัดเรียง :( N+ 1 ) Hยังไม่มีข้อความ- 2 N
ตอนนี้ถ้าคุณพล็อตฟังก์ชั่นเหล่านั้นคุณจะได้รับดังนี้
อย่างที่คุณเห็นการจัดเรียงฟองยิ่งแย่ลงเมื่อจำนวนขององค์ประกอบเพิ่มขึ้นแม้ว่าวิธีการเรียงลำดับทั้งสองมีความซับซ้อนเชิงซีมโทติคเหมือนกัน
การวิเคราะห์นี้ตั้งอยู่บนสมมุติฐานว่าอินพุตเป็นแบบสุ่มซึ่งอาจไม่เป็นจริงตลอดเวลา อย่างไรก็ตามก่อนที่เราจะเริ่มการเรียงลำดับเราสามารถสุ่มลำดับการป้อนข้อมูล (โดยใช้วิธีการใดก็ได้) เพื่อให้ได้ขนาดตัวพิมพ์โดยเฉลี่ย
ฉันละเว้นการวิเคราะห์ความซับซ้อนของเวลาเนื่องจากมันขึ้นอยู่กับการนำไปใช้ แต่สามารถใช้วิธีการที่คล้ายกันได้