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
Libérer: 2024-11-25 18:06:11
original
203 Les gens l'ont consulté

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;
}
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal