Comparaisons moyennes d’une recherche linéaire
Ce calculateur de comparaisons pour la recherche linéaire indique combien de tests d’égalité effectue une recherche séquentielle lorsque la cible est présente dans une collection de n éléments.
Lancer gratuitement
Selon l’hypothèse classique où la cible peut occuper chaque position avec la même probabilité, il fournit le nombre attendu de comparaisons et le pire cas. Développeurs, étudiants et réviseurs peuvent ainsi relier la notation O(n) aux nombres concrets obtenus pour une taille de collection donnée.
Comprenez le modèle probabiliste de la moyenne
La recherche linéaire examine les éléments dans l’ordre et s’arrête dès qu’elle trouve la cible. Si une cible présente a la même probabilité d’occuper chacune des n positions, trouver le premier élément coûte une comparaison, trouver le deuxième en coûte deux et trouver le dernier en coûte n. Chacun de ces coûts a une probabilité de 1/n. Le coût attendu est donc la moyenne arithmétique des entiers de 1 à n, soit (n + 1) / 2 après simplification. Saisissez la taille de la collection dans n pour appliquer exactement cette formule. Cette hypothèse est essentielle : il ne s’agit pas d’une estimation fondée sur des mesures de durée, du matériel ou un langage de programmation. Le résultat est un décompte déterministe pour une recherche réussie avec distribution uniforme des positions. Si certaines positions ou valeurs sont recherchées plus souvent, leurs probabilités doivent être pondérées séparément. Le modèle ne couvre pas non plus une cible absente, qui impose d’examiner les n éléments.
Interprétez la moyenne et le pire cas
Le résultat moyen peut être entier ou comporter un demi. Par exemple, une collection de 100 éléments produit un coût attendu de 50.5 comparaisons. Cette fraction ne signifie pas qu’une exécution réalise une demi-comparaison : elle représente la moyenne à long terme de nombreuses recherches réussies dont les positions sont uniformément distribuées. Le pire cas vaut n, car une cible placée en dernière position n’est trouvée qu’après la vérification de tous les éléments. Pour une collection d’un élément, les deux valeurs valent un. Lorsque n augmente, la moyenne se rapproche de la moitié de la taille, tandis que le pire cas reste égal à la taille complète. Les deux grandeurs augmentent linéairement, d’où la classe O(n) pour une recherche linéaire réussie malgré des constantes différentes. Utilisez la moyenne pour une charge conforme à la distribution indiquée et le pire cas comme limite stricte d’une requête réussie. Ces nombres excluent la gestion de boucle, les accès mémoire, le tri et le coût interne d’une comparaison.
Exploitez le résultat pour la conception et les performances
Des nombres de comparaisons précis rendent les discussions algorithmiques plus utiles que la seule notation asymptotique. Vous pouvez confronter le travail attendu d’une recherche linéaire au coût de construction d’une autre structure de données, notamment lorsque la collection est petite, rarement interrogée ou souvent modifiée. Une table de hachage ou un index trié peut accélérer les consultations, mais sa création et son entretien ont un coût qu’un simple parcours évite. Ce calculateur quantifie le parcours sans prétendre mesurer la durée d’exécution. Il permet également de vérifier un exercice, de valider un modèle de feuille de calcul, de documenter une revue de code ou de produire des valeurs stables pour un cours. Conservez les conditions avec le résultat : la cible est présente, chaque position est équiprobable, la recherche part du premier élément et s’arrête à la première correspondance. Les doublons peuvent invalider ce modèle. Pour une cible absente, comptez n comparaisons ; pour des accès non uniformes, calculez une espérance pondérée.
Cas d’usage
Vérifier un exercice d’algorithmique
Confirmez les nombres attendu et maximal de comparaisons d’une recherche réussie pour une taille donnée.
Estimer des consultations répétées
Quantifiez les comparaisons attendues lorsque les cibles présentes sont uniformément réparties dans une collection non triée.
Expliquer un choix de structure de données
Comparez le coût concret d’un parcours aux coûts de création et d’entretien d’un index, tableau trié ou dictionnaire de hachage.
Questions fréquentes
Quelle formule donne le nombre moyen de comparaisons ?
Pour une cible présente et équiprobable à chaque position, la moyenne est de (n + 1) / 2 comparaisons.
Pourquoi la moyenne peut-elle inclure une demi-comparaison ?
C’est une espérance sur de nombreuses recherches, et non le décompte d’une seule. Chaque recherche effectue toujours un nombre entier de comparaisons.
Quel est le pire cas d’une recherche linéaire réussie ?
Le pire cas demande n comparaisons et se produit lorsque la cible occupe la dernière position.
Le calculateur couvre-t-il une cible absente ?
Non. Le modèle suppose la cible présente. Une recherche linéaire ordinaire infructueuse examine les n éléments.
Le résultat mesure-t-il la durée d’exécution ?
Non. Il compte uniquement les comparaisons ; la durée réelle dépend aussi de l’implémentation, du coût de comparaison, du matériel et des opérations annexes.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/dev/linear-search-avg \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":100}'const res = await fetch("https://api.kit.forhosting.com/dev/linear-search-avg", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/linear-search-avg",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/linear-search-avg", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/linear-search-avg", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"n": 100
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.linear_search_avg",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |