《算法基础:打开算法之门》一3.1 二分查找
本节书摘来自华章出版社《算法基础:打开算法之门》一书中的第3章,第3.1节,作者 [美]托马斯 H 科尔曼(Thomas H Cormen),更多章节内容可以访问云栖社区“华章计算机”公众号查看
3.1 二分查找
在学习一些排序算法之前,首先学习二分查找,其中待查找的数组事先需要是有序的。二分查找的优点是从包含n个元素的数组中执行查找操作仅仅需要O(lgn)时间。
在书架那个例子中,当书架上的书已经按照作者名字从左向右依次排好序后才开始进行查找。我们将使用作者名字作为主关键字,现在让我们搜索下由Jonathan Swift所写的书。你可能已经推测到:因为作者的姓以“S”开头,“S”是字母表中的第19个字母,且19/26与3/4接近,因此你可能会浏览书架上位置大约在四分之三的那部分书籍。但是如果你有莎士比亚的所有作品,接着还有几本姓氏排