select a single choice is again the integral part of . This idea is used in the analysis of several algorithms and data structures. For example, in binary search, the size of the problem to be solved is halved with each iteration, and therefore roughly iterations are needed to obtain a solution for a problem of size . Similarly, a perfectly balanced binary search tree containing elements has height . The running time of an algorithm is usually expressed in big O notation, which is used to simplify expressions by omitting their constant factors and lower-order terms. Because logarithms in different bases differ from each other only by a constant factor, algorithms that run in time can also be said to run in, say, time. The base of the logarithm in expressions such as or is therefore not important and can be omitted. However, for logarithms that appear in the exponent of a time bound, the base of the logarithm cannot be omitted. For example, is not the same as because the former is equal to and the latter to . Algorithms with running time are sometimes called linearithmic. Some examples of algorithms with running time or are: Average time quicksort and other comparison sort algorithms Searching in balanced binary search trees Exponentiation by squaring Longest increasing subsequence Binary logarithms also occur in the exponents of the time bounds for some divide and conquer algorithms, such as the Karatsuba algorithm for multiplying -bit numbers in time , and the Strassen algorithm for multiplying matrices in time . The occurrence of binary logarithms in these running times can be explained by reference to the master theorem for divide-and-conquer recurrences. Bioinformatics In bioinformatics, microarrays are used to measure how strongly different genes are expressed in a sample of biological material. Different rates of expression of a gene are often compared by using the binary logarithm of the ratio of expression rates: the log ratio of two expression rates is defined as the binary logarithm of the ratio of the two rates. Binary logarithms allow for a convenient comparison of expression rates: a doubled expression rate can be described by a log ratio of , a halved expression rate can be described by a log ratio of , and an unchanged expression rate can be described by a log ratio of zero, for instance. Data points obtained in this way are often visualized