quickfind

Quickly finds an element in a sorted list. If not found, returns -index of next smaller element.
577 téléchargements
Mise à jour 10 fév. 2011

Afficher la licence

% loc=quickfind(el,list)
%
% Finds the index of an element el in a SORTED list really quick.
% loc is the location, found is a boolean indicating whether an exact match
% was found.
%
% It doesn't check if the list is sorted, because that would take O(N) time
% and this is meant to run in O(log(N)). If you give it an unsorted list,
% it will either return a zero, and error, or the wrong answer. It is
% guaranteed to stop though, which is nice.
%
% If you give it an element that's not in the sorted list, it interpolates,
% and sets found to false.
% Special cases: if it's smaller than the first element it returns zero.
% If it's bigger then the last element it returns length(list)+1, and of
% course found will be false.
%
% Example usage
% r=sort(rand(1,10000000));
% tic, quickfind(r(7654321),r), toc
%
% Have fun..
%
% Peter
% oconnorp -at- ethz -dot- ch

Citation pour cette source

Peter O'Connor (2026). quickfind (https://fr.mathworks.com/matlabcentral/fileexchange/30112-quickfind), MATLAB Central File Exchange. Extrait(e) le .

Compatibilité avec les versions de MATLAB
Créé avec R2010b
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS Linux
Catégories
En savoir plus sur Shifting and Sorting Matrices dans Help Center et MATLAB Answers
Version Publié le Notes de version
1.2.0.0

changed it so it interpolates when an element isn't found, and added a second output indicating whether the exact match was found.

1.1.0.0

fixed a thing where it wouldn't find the last element

1.0.0.0