J'ai une collection de n écrous, et une collection de n boulons, tous deux disposés par ordre croissant de taille. Je dois donner un algorithme O (n) pour vérifier si un écrou et un boulon ont la même taille. Les tailles des écrous sont dans un tableau NUTS [1..n] Les tailles des boulons sont dans un tableau BOLTS [1 ... n]Donner une analyse d'un algorithme O (n) pour vérifier la correspondance des écrous/boulons dans les rangées triées
Je n'ai pas besoin de trouver tous les résultats, il suffit d'arrêter l'algorithme même si un correspond est trouvé. Voici à quoi ressemble mon code-barres
for each n in NUTS
for each b in BOLTS
if BOLTS[i] == NUTS[i]
break;
Donc, pour chaque écrou, je cherche tous les boulons. C'est O (n^2), Comment ferais-je O (n)? Ma compréhension est que je n'aurais probablement besoin que d'une boucle pour le faire. Désolé, ma compréhension est un peu floue
Ce n'est pas un O (n) c'est O (n^2) dans le pire des cas –
Comment est-ce que je ferais un O (n), en faisant un seul pour la boucle? – Demon213
Itérer les deux tableaux en parallèle (faire deux variables d'index). – melpomene