เหตุใดบันทึกใน big-O ของการค้นหาแบบไบนารีจึงไม่ได้เป็นฐาน 2


35

ฉันยังใหม่กับการเข้าใจอัลกอริทึมวิทยาศาสตร์คอมพิวเตอร์ ฉันเข้าใจกระบวนการค้นหาแบบไบนารี แต่ฉันมีความเข้าใจผิดเล็กน้อยเกี่ยวกับประสิทธิภาพ

ในขนาดขององค์ประกอบมันจะใช้เวลาโดยเฉลี่ยnขั้นตอนในการค้นหาองค์ประกอบเฉพาะ การฐาน 2 ลอการิทึมของอัตราผลตอบแทนที่ทั้งสองฝ่ายเข้าสู่ระบบ2 ( s ) = n ดังนั้นจะไม่ค่าเฉลี่ยของจำนวนขั้นตอนสำหรับการค้นหาแบบทวิภาคจะเข้าสู่ระบบ2 ( s ) ?s=2nnlog2(s)=nlog2(s)

บทความนี้วิกิพีเดียในการค้นหาแบบทวิภาคกล่าวว่าผลการดำเนินงานเฉลี่ย ) ทำไมเป็นเช่นนี้ ทำไมไม่ได้หมายเลขนี้เข้าสู่ระบบ2 ( n ) ?O(logn)log2(n)


คำตอบ:


86

เมื่อคุณเปลี่ยนฐานของลอการิทึมนิพจน์ที่ได้จะแตกต่างกันโดยปัจจัยคงที่ซึ่งตามนิยามของ Big-O สัญกรณ์หมายความว่าทั้งสองฟังก์ชันนั้นอยู่ในคลาสเดียวกันโดยคำนึงถึงพฤติกรรมของซีมโทติค

ตัวอย่างเช่น โดยที่ C=1

log10n=log2nlog210=Clog2n
10C=1log210

log10nlog2nC

log10n is O(log2n)
log2n is O(log10n)
loganO(logbn)ab

k>1nkO(n)lognkO(logn)lognk=klognlognk


a,b>1e

2
O(logn)

9

log(n)elog

แต่อย่างที่ได้รับการแสดงในกรณีนี้มันไม่ได้จบลงด้วยความสำคัญ


7
อาจเป็นไปได้ที่จะสังเกตเห็นได้ว่าในขณะที่ "log (n)" อาจไม่ชัดเจนว่า "O (log (n))" ไม่ใช่เพราะสิ่งหลังมีความหมายเพียงอย่างเดียวไม่ว่าคุณจะนึกถึงอะไรก็ตาม
Chris
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.