We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Efficiently Searching In-Memory Sorted Arrays: Revenge of the Interpolation Search?

00:00

Formal Metadata

Title
Efficiently Searching In-Memory Sorted Arrays: Revenge of the Interpolation Search?
Title of Series
Number of Parts
155
Author
License
CC Attribution 3.0 Germany:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
In this paper, we focus on the problem of searching sorted, in-memory datasets. This is a key data operation, and Binary Search is the de facto algorithm that is used in practice. We consider an alternative, namely Interpolation Search, which can take advantage of hardware trends by using complex calculations to save memory accesses. Historically, Interpolation Search was found to underperform compared to other search algorithms in this setting, despite its superior asymptotic complexity. Also, Interpolation Search is known to perform poorly on non-uniform data. To address these issues, we introduce SIP (Slope reuse Interpolation), an optimized implementation of Interpolation Search, and TIP (Three point Interpolation), a new search algorithm that uses linear fractions to interpolate on non-uniform distributions. We evaluate these two algorithms against a similarly optimized Binary Search method using a variety of real and synthetic datasets. We show that SIP is up to 4 times faster on uniformly distributed data and TIP is 2-3 times faster on non-uniformly distributed data in some cases. We also design a meta-algorithm to switch between these different methods to automate picking the higher performing search algorithm, which depends on factors like data distribution.
Information managementMagneto-optical driveArray data structureInterpolationSemiconductor memoryStudent's t-testSemiconductor memory
Range (statistics)Price indexBinary fileMathematical optimizationCASE <Informatik>Level (video gaming)Primitive (album)Physical systemBand matrixSemiconductor memoryFLOPSWordInterpolationRead-only memoryCharacteristic polynomialArray data structurePosition operatorUniform convergenceEstimationCalculationLinear mapData modelDistribution (mathematics)Intercept theoremIntegerProcess (computing)Point (geometry)NumberSequenceArithmetic progressionArray data structureFitness functionLine (geometry)Mathematical optimizationRange (statistics)Endliche ModelltheorieFundamental theorem of algebraGoodness of fitData structureKey (cryptography)Operator (mathematics)Process (computing)Search algorithmMereologyFigurate numberAlgorithmDifferent (Kate Ryan album)Software frameworkLevel (video gaming)Query languageBit rateData storage deviceSemiconductor memoryInterpolationArithmetic progressionPosition operatorUltraviolet photoelectron spectroscopyCoprocessorRevision controlCharacteristic polynomialNeuroinformatikRight anglePlotterCartesian coordinate systemDistribution (mathematics)CalculationIntercept theoremMultiplication signIntegerPoint (geometry)ResultantQuicksortFLOPSWordFood energyCausalityComputer filePrice indexVideo gameTraverse (surveying)Nichtlineares GleichungssystemVolume (thermodynamics)Physical systemLoginScaling (geometry)Set (mathematics)Self-organizationTerm (mathematics)EvoluteInsertion lossCollisionSparse matrixImplementationIterationDimensional analysisWater vaporClosed setTheory of relativityDistribution (mathematics)Computer animationDiagram
InterpolationDistribution (mathematics)Fraction (mathematics)Linear mapPoint (geometry)Session Initiation ProtocolMathematical optimizationAerodynamicsVarianceBinary fileUniform convergenceRow (database)Performance appraisalAlgorithmBenchmarkLevel (video gaming)NumberSemiconductor memoryArray data structureRead-only memoryDistribution (mathematics)Binary codeQuicksortAlgorithmNumberCellular automatonBenchmarkDifferent (Kate Ryan album)Multiplication signComputer wormSemiconductor memoryInferenceCalculationPlastikkarteTwitterCodeIntegerPoint (geometry)Arithmetic progressionClosed setEndliche ModelltheorieTheory of relativityMathematical optimizationLinear regressionArray data structureLine (geometry)Video gameInterpolationLinearizationPosition operatorSet (mathematics)Level (video gaming)Dependent and independent variablesDistanceComputer programmingDistribution (mathematics)Physical systemKey (cryptography)Process (computing)Sampling (statistics)Performance appraisalAnnihilator (ring theory)Dynamical systemGroup actionCircleFigurate numberComputer file1 (number)Theory of everythingSession Initiation ProtocolRandomizationCoprocessorMeta elementSearch algorithmFraction (mathematics)Row (database)VarianceCurveIterationNichtlineares GleichungssystemRegular graphComputer animation
Semiconductor memoryArray data structureBinary fileSession Initiation ProtocolRead-only memoryComputer animation
Transcript: English(auto-generated)