- #1
- 350
- 203
Binary search works by eliminating half of the objects in a sorted array every time,so shouldn’t it’s time complexity being ##O(\log_2 n)## instead of ##O(\log n)##?
I do get that when the input tends to infinity,the difference between ##\log x## and ##\log_2 x## becomes smaller and smaller,but why don’t they just use ##O(\log_2 x)##?mfb said:Where is the difference?
It isn't about limits as n tends to infinity. Do you know how to express the ##\log_b x##, where ##b## is any base, in terms of ##\log x##?Young physicist said:I do get that when the input tends to infinity,the difference between ##\log x## and ##\log_2 x## becomes smaller and smaller,but why don’t they just use ##O(\log_2 x)##?
Yes, I do.Ibix said:Do you know how to express the logbxlogbx\log_b x, where bbb is any base, in terms of logxlogx\log x?
Ohh~~problem solved!mfb said:So ln(x) and log2 only differ by a constant (ln(2)). A constant doesn't matter. ##O(\log n) = O(5\log n) = O(46342\log n)##
It doesn't matter. All bases do the same thing - you just multiply by a constant to change base, and you discard that constant in this case.Young physicist said:Ohh~~problem solved!
Edit:so this ##\log x## means ##\log_e x## rather than ##\log_{10} x## ?
Yeah.Just making sure the ln(x) posted by @mfb isn’t an accident.Ibix said:It doesn't matter. All bases do the same thing - you just multiply by a constant to change base, and you discard that constant in this case.
In computer science books ##\log(n)## is usually taken to mean ##\log_2(n)##.Young physicist said:Binary search works by eliminating half of the objects in a sorted array every time,so shouldn’t it’s time complexity being ##O(\log_2 n)## instead of ##O(\log n)##?
woah!mfb said:Computer science read log(x) as base 2, mathematics and most of physics will see it as base e, chemistry will see it as base 10, ...
The time complexity of a binary search is O(log n), where n is the number of elements in the sorted array.
The time complexity of a binary search is calculated by counting the number of comparisons made in the worst case scenario, which is when the target element is not present in the array. This number of comparisons can be expressed as log2(n), where n is the number of elements in the array.
Time complexity refers to the number of operations or comparisons needed to complete a task, while space complexity refers to the amount of memory required to perform the task. In a binary search, the time complexity is O(log n) while the space complexity is O(1) as it only requires a constant amount of memory for the variables used.
The best case scenario for the time complexity of a binary search is O(1), when the target element is the middle element of the array. In this case, only one comparison is needed to find the target element.
The worst case scenario for the time complexity of a binary search is O(log n), when the target element is not present in the array and the search has to go through all the elements in the array before determining that the target element is not present. This is because the search has to continually divide the array in half to determine which half the target element may be in.