Treci la conținutul principal

O singură trecere prin date

O(n) înseamnă timp liniar: munca crește în pas cu datele de intrare. De două ori mai multe elemente, de două ori mai mulți pași.

În TypeScript, timpul liniar arată de obicei ca o singură buclă for peste un tablou sau peste un Map. Orice algoritm care trebuie măcar să se uite la fiecare element — însumare, numărare, căutare într-un tablou nesortat — nu poate fi mai rapid decât O(n).

Liniar este o complexitate bună. Milioane de elemente nu sunt o problemă pentru o singură trecere.


Căutare liniară

Când tabloul nu este sortat, singura cale de a găsi o valoare este să verifici elementele unul câte unul, de la început. Aceasta este o căutare liniară.

În cazul cel mai defavorabil — valoarea este ultima sau nu există deloc — bucla vizitează toate cele n elemente. Acel caz defavorabil este ceea ce descrie O(n).

Găsește o valoare și poziția ei

Bucla verifică "one", "two", "three" înainte să ajungă la "four" — 4 pași pentru o potrivire la indexul 3. break oprește bucla imediat ce valoarea este găsită.

Prompt
Scrie un program TypeScript care caută în tabloul one, two, three, four, five cuvântul four cu o buclă simplă după index, numărând pașii. Când îl găsește, afișează indexul și numărul de pași, apoi oprește bucla cu break.
Ieșire: program TypeScript și rezultatul capturat
Find a value and its position

Vizitarea fiecărui element

Multe sarcini obișnuite sunt o singură trecere prin tot tabloul: adună toate valorile, păstrează cea mai mare valoare văzută până acum, numără elementele care trec un test. Fiecare element este atins exact o dată, așa că toate sunt O(n).

Două sau trei astfel de treceri la rând tot liniar înseamnă — O(2n) și O(3n) se reduc la O(n).

Însumează toate elementele

Bucla adună fiecare element la sum. 8 elemente, 8 adunări — forma clasică a unei singure treceri.

Prompt
Scrie un program TypeScript care însumează tabloul 3, 1, 4, 1, 5, 9, 2, 6 cu o singură buclă și afișează câte elemente a însumat și totalul.
Ieșire: program TypeScript și rezultatul capturat
Sum all elements

Găsește cea mai mare valoare

biggest pornește de la primul element; orice alt element mai mare îl înlocuiește. După o singură trecere rămâne cea mai mare valoare, 9.

Prompt
Scrie un program TypeScript care găsește cea mai mare valoare din tabloul 3, 1, 4, 1, 5, 9, 2, 6 într-o singură trecere: pornește cu primul element ca fiind cel mai mare și înlocuiește-l ori de câte ori apare unul mai mare. Afișează cea mai mare valoare.
Ieșire: program TypeScript și rezultatul capturat
Find the biggest value

Numără potrivirile

Bucla testează fiecare cuvânt cu w.length > 3 și numără potrivirile. Trei cuvinte sunt mai lungi de 3 litere.

Prompt
Scrie un program TypeScript care numără câte cuvinte din tabloul one, two, three, four, five sunt mai lungi de 3 litere, apoi afișează numărul într-o propoziție.
Ieșire: program TypeScript și rezultatul capturat
Count the matches