With preconditions a > 1 and a < b (no overflow): int x = 0; int p = 1; while (p < b) { p = p * a; x = x + 1; } When the loop ends, x in terms of a and b is
Pick an option to check yourself, or open the answer below.
Show answer & explanation
Correct answer: D. ⌈log_a b⌉ (ceiling)
Explanation
p takes the values a, a², … and stops at the first power with aˣ ≥ b, so x = ⌈log_a b⌉.
More Data Structures and Algorithms questions
- A complete -ary tree is a tree in which each n I node has children or no children. Let be the L number of internal nodes and be the number…
- In a binary max heap containing numbers, the smallest element can be found in ____ time.
- If algorithm A and another algorithm B take −− log (n) √n 2 and microseconds, respectively, to n solve a problem, then the largest size of…
- Let be a directed graph whose vertex set is the set of numbers from 1 to 100 . There is an i j edge from a vertex to a vertex if and only i…
- The running time of an algorithm is O(g(n)) if and only if: (A) its worst-case running time is O(g(n)) and its best-case running time is Ω(…
- Match List I with List II. List I: A. Topological sort of a DAG, B. Kruskal's MST algorithm, C. Bellman-Ford single-source shortest path, D…