Durchschnittliche Vergleiche bei linearer Suche
Dieser Rechner für Vergleiche bei der linearen Suche zeigt, wie viele Gleichheitsprüfungen eine sequenzielle Suche ausführt, wenn das Ziel in einer Sammlung mit n Elementen vorhanden ist.
Im Browser ausführen – kostenlos
Unter der üblichen Annahme, dass das Ziel mit gleicher Wahrscheinlichkeit an jeder Position liegt, gibt er sowohl die erwartete Vergleichszahl als auch den schlechtesten Fall aus. So können Entwickler, Lernende und Prüfende die O(n)-Notation mit konkreten Zahlen für eine bestimmte Sammlungsgröße verbinden.
Verstehen Sie das Wahrscheinlichkeitsmodell des Mittelwerts
Die lineare Suche prüft Elemente der Reihe nach und endet, sobald sie das Ziel findet. Wenn ein vorhandenes Ziel mit gleicher Wahrscheinlichkeit an jeder der n Positionen liegt, kostet das Auffinden des ersten Elements einen Vergleich, das des zweiten zwei und das des letzten n. Jeder dieser Fälle hat die Wahrscheinlichkeit 1/n. Der erwartete Aufwand ist daher das arithmetische Mittel der ganzen Zahlen von 1 bis n und vereinfacht sich zu (n + 1) / 2. Geben Sie die Sammlungsgröße als n ein; der Rechner wendet genau diese Formel an. Die Annahme ist entscheidend: Das Ergebnis ist keine Schätzung aus Laufzeitmessungen, Hardware oder einer Programmiersprache. Es ist eine deterministische Vergleichszahl für eine erfolgreiche Suche bei gleichverteilten Positionen. Werden manche Positionen oder Werte häufiger gesucht, müssen ihre Wahrscheinlichkeiten getrennt gewichtet werden. Ein nicht vorhandenes Ziel bildet das Modell ebenfalls nicht ab; eine gewöhnliche lineare Suche prüft dann immer alle n Elemente.
Deuten Sie Durchschnitt und schlechtesten Fall
Das durchschnittliche Ergebnis kann ganzzahlig sein oder auf einen halben Vergleich enden. Eine Sammlung mit 100 Elementen verursacht beispielsweise erwartete 50.5 Vergleiche. Der Bruchteil bedeutet nicht, dass ein einzelner Ablauf einen halben Vergleich ausführt; er ist der langfristige Mittelwert vieler erfolgreicher Suchen mit gleichverteilten Zielpositionen. Der schlechteste Fall beträgt n, weil ein Ziel an letzter Position erst gefunden wird, nachdem jedes Element geprüft wurde. Bei einer Sammlung mit einem Element sind beide Werte eins. Mit wachsendem n nähert sich der Durchschnitt der halben Sammlungsgröße, während der schlechteste Fall die volle Größe bleibt. Beide Größen wachsen linear, weshalb die asymptotische Analyse eine erfolgreiche lineare Suche als O(n) einordnet, obwohl die Konstanten verschieden sind. Nutzen Sie den Mittelwert für Arbeitslasten, die der angegebenen Verteilung entsprechen, und den schlechtesten Fall als feste Obergrenze. Schleifenverwaltung, Speicherzugriffe, Sortierung und interne Vergleichskosten sind nicht enthalten.
Nutzen Sie das Ergebnis für Entwurfs- und Leistungsfragen
Konkrete Vergleichszahlen machen Gespräche über Algorithmen aussagekräftiger als asymptotische Notation allein. Sie können den erwarteten Aufwand der linearen Suche den Kosten einer anderen Datenstruktur gegenüberstellen, insbesondere wenn die Sammlung klein ist, selten durchsucht wird oder sich häufig ändert. Eine Hashtabelle oder ein sortierter Index kann Sucharbeit reduzieren, verursacht aber Aufbau- und Wartungskosten, die ein einfacher Durchlauf vermeidet. Dieser Rechner liefert die Durchlaufseite dieses Vergleichs, ohne eine Laufzeitmessung vorzutäuschen. Er eignet sich außerdem zum Prüfen von Aufgaben, Validieren eines Tabellenmodells, Dokumentieren einer Codeprüfung oder Erzeugen stabiler Lehrwerte. Halten Sie die Voraussetzungen beim Ergebnis fest: Das Ziel ist vorhanden, jede Position ist gleich wahrscheinlich, und die Suche beginnt vorne und endet beim ersten Treffer. Duplikate können das Modell verletzen. Bei fehlenden Zielen gelten n Vergleiche; bei ungleichmäßigen Zugriffen benötigen Sie einen gewichteten Erwartungswert.
Anwendungsfälle
Eine Algorithmusaufgabe prüfen
Bestätigen Sie die erwartete und maximale Vergleichszahl einer erfolgreichen Suche für eine vorgegebene Sammlungsgröße.
Wiederholte Suchvorgänge abschätzen
Bestimmen Sie die erwarteten Vergleiche bei gleichmäßig verteilten vorhandenen Zielen in einer unsortierten Sammlung.
Eine Datenstrukturentscheidung erläutern
Stellen Sie konkrete Durchlaufkosten den Aufbau- und Wartungskosten eines Index, sortierten Arrays oder einer Hashtabelle gegenüber.
Häufige Fragen
Welche Formel berechnet die durchschnittliche Vergleichszahl?
Bei einem vorhandenen Ziel, das an jeder Position gleich wahrscheinlich ist, beträgt der Mittelwert (n + 1) / 2 Vergleiche.
Warum kann der Durchschnitt einen halben Vergleich enthalten?
Er ist ein Erwartungswert über viele Suchen und nicht die Zahl einer einzelnen Suche. Jeder einzelne Ablauf führt stets eine ganze Zahl von Vergleichen aus.
Was ist der schlechteste Fall einer erfolgreichen linearen Suche?
Der schlechteste Fall benötigt n Vergleiche und tritt ein, wenn sich das Ziel an der letzten Position befindet.
Berücksichtigt der Rechner ein fehlendes Ziel?
Nein. Das Modell setzt ein vorhandenes Ziel voraus. Eine gewöhnliche erfolglose lineare Suche untersucht alle n Elemente.
Misst das Ergebnis die Ausführungszeit?
Nein. Es zählt nur Elementvergleiche; die tatsächliche Laufzeit hängt zudem von Implementierung, Vergleichskosten, Hardware und weiteren Arbeiten ab.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem 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)Beispiel-Anfrage
{
"n": 100
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.linear_search_avg",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |