Computing Atlas

How Computing Was Built
Sign In
Text size
100%
Theme
Algorithm

Fibonacci Search Algorithm

Searching Algorithm

Fibonacci search locates a target value in a sorted array by dividing the array using Fibonacci numbers rather than the equal halves binary search uses, comparing the target against elements at positions determined by successive Fibonacci numbers and narrowing the search range accordingly at each step until the target is found or the range is empty. Because it only requires addition and subtraction to compute its comparison points rather than division, it was historically useful on hardware where division was slow relative to addition. It runs in O(log n) time, the same asymptotic bound as binary search, and traces to Jack Kiefer's related 1950s work on Fibonacci search for optimizing unimodal functions, later adapted to array searching.

Facts
Partially Attested
Credited To
Jack Kiefer 1
Source says Fibonacci search is derived from Kiefer's 1953 golden section search; David E. Ferguson published Fibonaccian searching in 1960
Classification
Design Technique
Divide and Conquer 1
Time Complexity
O(log n) average-case and worst-case 1
Time Complexity
Time Complexity (category)
Logarithmic Time -- O(log n) 1
Sources
1. Wikipedia: Fibonacci search technique
  • Article body, sentence stating average-case and worst-case complexity
    it has an average-case complexity and worst-case complexity of O(log n)
  • Article body, sentence deriving it from golden section search
    an algorithm by Jack Kiefer (1953)
  • Fibonacci Search: "a divide and conquer algorithm"
View the Source
Comments (0)
No comments yet. Be the first to share a thought.
Reader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.