Search algorithms

Fibonacci search technique

In computer science, the Fibonacci search technique is a method of searching a sorted array using a divide and conquer algorithm that narrows down possible locations with the aid of Fibonacci numbers. Compared to binary search where the sorted array is divided into two equal-sized parts, one of which is examined further, Fibonacci search divides the array into two parts that have sizes that are consecutive Fibonacci numbers. On average, this leads to about 4% more comparisons to be executed, but it has the advantage that one only needs addition and subtraction to calculate the indices of the accessed array elements, while classical binary search needs bit-shift (see Bitwise operation), division or multiplication, operations that were less common at the time Fibonacci search was first published. Fibonacci search has an average- and worst-case complexity of O(log n) (see Big O notation). The Fibonacci sequence has the property that a number is the sum of its two predecessors. Therefore the sequence can be computed by repeated addition. The ratio of two consecutive numbers approaches the Golden ratio, 1.618... Binary search works by dividing the seek area in equal parts (1:1). Fibonacci search can divide it into parts approaching 1:1.618 while using the simpler operations. If the elements being searched have non-uniform access memory storage (i. e., the time needed to access a storage location varies depending on the location accessed), the Fibonacci search may have the advantage over binary search in slightly reducing the average time needed to access a storage location. If the machine executing the search has a direct mapped CPU cache, binary search may lead to more cache misses because the elements that are accessed often tend to gather in only a few cache lines; this is mitigated by splitting the array in parts that do not tend to be powers of two. If the data is stored on a magnetic tape where seek time depends on the current head position, a tradeoff between longer seek time and more comparisons may lead to a search algorithm that is skewed similarly to Fibonacci search. Fibonacci search is derived from Golden section search, an algorithm by Jack Kiefer (1953) to search for the maximum or minimum of a unimodal function in an interval. (Wikipedia).

Video thumbnail

Fibonacci Search

Fibonacci search scheme for finding the minimum of a function discovered by J. Kiefer and S. M. Johnson. This interval-based numerical method improves on Ternary Search and Dichotomous Search be reusing interval points based on ratios from the Fibonacci Sequence. Code can be found on GitHu

From playlist Numerical Methods

Video thumbnail

Generating Functions and Combinatorial Identities

We describe one method of manipulating generating function to produce new combinatorial sum identities. We include an application of finding the value of a certain sum involving Fibonacci numbers. http://www.michael-penn.net http://www.randolphcollege.edu/mathematics/

From playlist Identities involving Fibonacci numbers

Video thumbnail

STAIRS reveal the relationship between Fibonacci and combinatorics

Part I: https://youtu.be/Hl61mJxILA4 Source of the beautiful thumbnail: https://www.videoblocks.com/video/winter-stargate-deep-space-fibonacci-spiral-infinite-zoom-scl2tvcpliylych5s I am still surprised at why I have not thought of this more direct linkage between Fibonacci numbers and c

From playlist Fibonacci

Video thumbnail

5 ways to derive the general term of Fibonacci sequence

Matrix multiplication video: https://youtu.be/q1WRozg574k Previous video using generating function: https://youtu.be/Hl61mJxILA4 What if you are told to find the 100th Fibonacci number? Do you start from the first two terms? Wouldn't it be better if you know the general term of Fibonacci

From playlist Fibonacci

Video thumbnail

A nice Fibonacci sum done two ways!!

We find the infinite sum of f_n/2^n, where f_n is the nth Fibonacci number. As a tool, we construct the generating function for the Fibonacci sequence. We also find the sum using the "double summation trick" which was new to me!! This could also probably be done with summation by parts f

From playlist Identities involving Fibonacci numbers

Video thumbnail

Exercise - Write a Fibonacci Function

Introduction to the Fibonacci Sequence and a programming challenge

From playlist Computer Science

Video thumbnail

What do Fibonacci numbers have to do with combinatorics?

Part II: https://youtu.be/_RHXmGWXUvw Note: You ABSOLUTELY DON'T NEED TO HAVE KNOWN ANY COMBINATORICS because the combinatorics required in this video would be explained thoroughly. Source of the beautiful thumbnail: https://www.videoblocks.com/video/winter-stargate-deep-space-fibonacci-

From playlist Fibonacci

Video thumbnail

Cassini's identity | Lecture 7 | Fibonacci Numbers and the Golden Ratio

Derivation of Cassini's identity, which is a relationship between separated Fibonacci numbers. The identity is derived using the Fibonacci Q-matrix and determinants. Join me on Coursera: https://www.coursera.org/learn/fibonacci Lecture notes at http://www.math.ust.hk/~machas/fibonacci.pd

From playlist Fibonacci Numbers and the Golden Ratio

Video thumbnail

Lecture 19 - Examples of Dynamic Programming

This is Lecture 19 of the CSE373 (Analysis of Algorithms) taught by Professor Steven Skiena [http://www.cs.sunysb.edu/~skiena/] at Stony Brook University in 1997. The lecture slides are available at: http://www.cs.sunysb.edu/~algorith/video-lectures/1997/lecture12.pdf

From playlist CSE373 - Analysis of Algorithms - 1997 SBU

Video thumbnail

Finding Fibonacci general term using LINEAR ALGEBRA

Previous video: https://youtu.be/2j-XvUV2-aY Fibonacci and Combinatorics (Part I): https://youtu.be/Hl61mJxILA4 Fibonacci and Combinatorics (Part II): https://youtu.be/_RHXmGWXUvw Linear Algebra is another plausible method to tackle any recurrence relation formula, including Fibonacci seq

From playlist Fibonacci

Video thumbnail

Golden-section Search

Golden-section Search is a minimization algorithm that expands on the Fibonacci Search scheme described by J. Kiefer and S. M. Johnson. This interval-based numerical method improves on Ternary Search and Dichotomous Search be reusing interval points based on the golden ratio (phi). Code ca

From playlist Numerical Methods

Video thumbnail

Lec 3 | MIT 6.046J / 18.410J Introduction to Algorithms (SMA 5503), Fall 2005

Lecture 03: Divide-and-Conquer: Strassen, Fibonacci, Polynomial Multiplication View the complete course at: http://ocw.mit.edu/6-046JF05 License: Creative Commons BY-NC-SA More information at http://ocw.mit.edu/terms More courses at http://ocw.mit.edu

From playlist MIT 6.046J / 18.410J Introduction to Algorithms (SMA 5503),

Video thumbnail

Week 4: Friday - CS50 2007 - Harvard University

Debugging software. Designing software.

From playlist CS50 Lectures 2007

Video thumbnail

A Beginner's Guide to Recursion

Recursion has an intimidating reputation for being the advanced skill of coding sorcerers. But in this tutorial we look behind the curtain of this formidable technique to discover the simple ideas under it. Through live coding demos in the interactive shell, we'll answer the following que

From playlist Software Development

Video thumbnail

Lecture 18 - Introduction to Dynamic Programming

This is Lecture 18 of the CSE373 (Analysis of Algorithms) course taught by Professor Steven Skiena [http://www3.cs.stonybrook.edu/~skiena/] at Stony Brook University in 2016. The lecture slides are available at: https://www.cs.stonybrook.edu/~skiena/373/newlectures/lecture16.pdf More inf

From playlist CSE373 - Analysis of Algorithms 2016 SBU

Video thumbnail

Lecture 20: Dynamic Programming II: Text Justification, Blackjack

MIT 6.006 Introduction to Algorithms, Fall 2011 View the complete course: http://ocw.mit.edu/6-006F11 Instructor: Erik Demaine License: Creative Commons BY-NC-SA More information at http://ocw.mit.edu/terms More courses at http://ocw.mit.edu

From playlist MIT 6.006 Introduction to Algorithms, Fall 2011

Video thumbnail

Iterative Fibonacci Function Example

One way to write a Fibonacci function iteratively

From playlist Computer Science

Related pages

Big O notation | Fibonacci number | Binary search algorithm | Golden ratio | Bitwise operation