Maison >développement back-end >tutoriel php >Comment trouver efficacement la valeur la plus proche dans un tableau ordonné ?

Comment trouver efficacement la valeur la plus proche dans un tableau ordonné ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-25 18:06:11206parcourir

How to Efficiently Find the Closest Value in an Ordered Array?

Trouver la valeur la plus proche dans un tableau

Dans le traitement des données, trouver la valeur correspondante la plus proche dans un tableau est souvent essentiel pour diverses applications. Étant donné une valeur cible et un tableau ordonné, comment localiser efficacement l'élément le plus proche de la cible ?

Solution :

Pour trouver la valeur la plus proche dans un tableau, nous pouvons parcourir chaque élément du tableau et calculer la différence entre la valeur cible et chaque élément. L'élément présentant la plus petite différence est la valeur correspondante la plus proche. Voici une fonction PHP pour cette tâche :

function getClosest($search, $arr) {
   $closest = null;
   foreach ($arr as $item) {
      if ($closest === null || abs($search - $closest) > abs($item - $search)) {
         $closest = $item;
      }
   }
   return $closest;
}

Cette fonction prend deux paramètres : la valeur cible à rechercher et le tableau de nombres dans lequel rechercher. Il calcule la différence absolue entre la valeur cible et chaque élément du tableau. L'élément avec la plus petite différence absolue est stocké dans la variable $closest et finalement renvoyé comme résultat.

Utilisation :

Considérez le tableau suivant :

array(0, 5, 10, 11, 12, 20)

Lors d'une recherche avec une valeur cible de 0, la fonction renverra 0. Pour une valeur cible de 3, la fonction renverra 5. De même, pour un valeur cible de 14, la fonction renverra 12.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn