**18.1** a) 16, because an *O*(*n*^{2}) algorithm takes 16 times as long to sort four times as much information. b) *O*(*n* log *n*).

**18.2** Both of these algorithms incorporate “halving”—somehow reducing something by half. The binary search eliminates from consideration one half of the array after each comparison. The merge sort splits the array in half each time it’s called.

**18.3** The insertion sort is easier to understand and to program than the merge sort. The merge sort is far more efficient (*O*(*n* log *n*)) than the insertion sort (*O*(*n*^{2})).

**18.4** In a sense, it does not really sort these two subarrays. It simply keeps splitting the original array in half until it provides a one-element subarray, which is, of course, sorted. It then ...

Start Free Trial

No credit card required