Comment trouver l'entier le plus proche d'une valeur donnée dans une liste ?

Mary-Kate Olsen
Libérer: 2024-11-11 02:45:03
original
875 Les gens l'ont consulté

How to Find the Closest Integer to a Given Value in a List?

Trouver l'entier le plus proche d'une valeur donnée dans une liste

Pour déterminer le nombre dans une liste donnée qui est le plus proche d'une valeur cible , plusieurs approches peuvent être envisagées :

Utilisation de la fonction min() intégrée Fonction :

Si la liste n'est pas triée, la fonction min() fournit un moyen pratique de trouver l'élément le plus proche. Elle nous permet de spécifier une fonction clé pour évaluer la distance par rapport à la valeur cible :

min(myList, key=lambda x:abs(x-myNumber))
Copier après la connexion

Cette approche a une complexité temporelle de O(n), où n est la longueur de la liste.

Utilisation de la méthode de bissection (pour les listes triées) :

Si la liste est déjà triée ou peut être triée efficacement, la méthode de bissection offre une solution plus rapide avec une complexité temporelle de O (log n). Cette technique consiste à diviser à plusieurs reprises la liste en deux et à comparer la valeur cible à l'élément du milieu jusqu'à ce que l'élément le plus proche soit trouvé.

Comparer les différences absolues :

Une autre approche est pour parcourir la liste et calculer la différence absolue entre chaque élément et la valeur cible. L'élément avec la plus petite différence absolue est alors considéré comme le plus proche :

closest_num = None
min_diff = float('inf')
for num in myList:
    diff = abs(num - myNumber)
    if diff < min_diff:
        closest_num = num
        min_diff = diff
Copier après la connexion

Cette approche a également une complexité temporelle de O(n).

Le choix de l'approche dépend de facteurs tels que comme la taille de la liste et si elle est déjà triée. Pour les petites listes ou les listes non triées, la fonction min() peut être une solution simple. Pour les listes volumineuses ou triées, la méthode de bissection offre une meilleure efficacité.

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