Manière formelle d'obtenir les valeurs les plus proches dans le tableau en Javascript, étant donné une valeur et un tableau trié?
Si j'ai un tableau comme ceci:
var array = [1, 3, 4, 5, 9, 10];
Et j'ai une valeur comme ceci:
var value = 8;
Je veux obtenir ce résultat:
var result = getClosestValues(array, value); //[5, 9]
Ce qui est de la bonne/meilleure façon de le faire en javascript? Il semble que ce est probablement l'une formelle de l'algorithme de quelque part. Peut-être comme ceci:
var getClosestValues = function(array, value) {
var low, high = 0, value;
for (var i = 0; i < array.length; i++) {
if (low <= value && low < array[i])
low = array[i];
if (high == value && high < array[i])
high = array[i];
};
return [low, high];
}
Merci!
source d'informationauteur Lance Pollard
Vous devez vous connecter pour publier un commentaire.
Si le tableau est trié et grandes, utiliser un binaire chop pour trouver le plus proche éléments:
Sinon, il suffit de numériser à partir d'une extrémité à l'autre, en gardant une trace de la plus proche des valeurs au-dessus et au-dessous de la cible. Pour cet algorithme, votre version est cassée, malheureusement. Voici une autre version:
Pour un tableau avec les valeurs triées (données est une matrice, xIndex est la colonne de recherche, xVal est la valeur de sarch, du seuil de la tolérance de distance (peut-être 0) ):
C-code