0Pricing
JavaScript Academy · Lezione

Basi della Big-O, percorsi caldi e freddi (vantaggi per principianti)

Sviluppi un’intuizione della Big-O e ti concentri sui percorsi caldi. Sostituisci scansioni annidate con Set/Map, eviti il lavoro ripetuto e mantieni il codice breve e chiaro.

Basi della Big-O, percorsi caldi e freddi (vantaggi per principianti) è una lezione JavaScript Academy gratuita su CoddyKit. Questa è la lezione 1 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento JavaScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso JavaScript Academy include 3 lezioni in totale.

Panoramica

Obiettivo: ottenere risultati rapidi senza teorie complesse.

  • Intuizione della Big-O: evitate i cicli annidati
  • Percorsi caldi e freddi: ottimizzate ciò che viene eseguito più spesso
  • Set/Map per ricerche rapide
  • Eseguire il lavoro una volta, poi riutilizzare i risultati
Basi della Big-O, percorsi caldi e freddi (vantaggi per principianti) — illustrazione 1

La scansione annidata è costosa

Annidare le scansioni moltiplica il lavoro. Ogni includes percorre nuovamente l'array.

// Bad pattern: nested scan for membership (can be ~O(n^2))
const haystack = ["a","b","c","d","e"];
const needles = ["b","e","x"];
const foundSlow = [];

for (const n of needles) {
  // includes scans the array each time
  if (haystack.includes(n)) {
    foundSlow.push(n);
  }
}
console.log("slow found:", foundSlow);
Basi della Big-O, percorsi caldi e freddi (vantaggi per principianti) — illustrazione 2

Set per verificare l'appartenenza

Create un Set una volta; usate has per verificare rapidamente l'appartenenza. In questo modo eliminate la scansione interna.

// Better: build a Set once, then O(1)-ish checks (~O(n) overall)
const fastSet = new Set(haystack);
const foundFast = [];
for (const n of needles) {
  if (fastSet.has(n)) {
    foundFast.push(n);
  }
}
console.log("fast found:", foundFast);
Basi della Big-O, percorsi caldi e freddi (vantaggi per principianti) — illustrazione 3

Map per i conteggi

Map memorizza i conteggi per letture successive quasi O(1); evitate di scansionare nuovamente gli array per rifare i conteggi.

// Build a frequency map once instead of scanning many times
const words = ["a","b","a","a","c","b"];
const freq = new Map();

for (const w of words) {
  const old = freq.get(w) || 0;
  freq.set(w, old + 1);
}

console.log("count a:", freq.get("a"));
console.log("count b:", freq.get("b"));
Basi della Big-O, percorsi caldi e freddi (vantaggi per principianti) — illustrazione 4

Eseguire una volta (cache)

Se un valore si ripete, memorizzate il risultato nella cache. Mantenete le cache piccole e facili da capire per chi sta imparando.

// Do work once and reuse (tiny cache)
function heavy(x) {
  // pretend heavy math
  return x * x + 1;
}

const cache = new Map();

function heavyCached(x) {
  if (cache.has(x)) return cache.get(x);
  const val = heavy(x);
  cache.set(x, val);
  return val;
}

console.log("first:", heavyCached(5));
console.log("second:", heavyCached(5)); // cached
Basi della Big-O, percorsi caldi e freddi (vantaggi per principianti) — illustrazione 5

Concentrarsi sui percorsi caldi

Percorso caldo: viene eseguito molte volte (ottimizzatelo). Percorso freddo: codice raro (mantenetelo semplice).

  • Rimuovete i cicli interni dal codice caldo.
  • Usate Set/Map per le operazioni frequenti di verifica dell'appartenenza e conteggio.
  • Misurate in seguito; iniziate dalla chiarezza.
Basi della Big-O, percorsi caldi e freddi (vantaggi per principianti) — illustrazione 6

Quiz sull'ottimizzazione delle verifiche di appartenenza

Controllo rapido: ridurre le scansioni annidate.

Basi della Big-O, percorsi caldi e freddi (vantaggi per principianti) — illustrazione 7

Riepilogo

Riepilogo: evitate le scansioni annidate, usate Set/Map per ricerche e conteggi ed eseguite il lavoro una volta sola. Concentratevi sui percorsi caldi; mantenete semplice il codice freddo.

Basi della Big-O, percorsi caldi e freddi (vantaggi per principianti) — illustrazione 8

Domande Frequenti

La lezione «Basi della Big-O, percorsi caldi e freddi (vantaggi per principianti)» è gratuita?

Sì — il testo completo di «Basi della Big-O, percorsi caldi e freddi (vantaggi per principianti)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso JavaScript Academy, passa a CoddyKit PRO. Il corso JavaScript Academy include 3 lezioni in totale.

Cosa imparerò in «Basi della Big-O, percorsi caldi e freddi (vantaggi per principianti)»?

Sviluppi un’intuizione della Big-O e ti concentri sui percorsi caldi. Sostituisci scansioni annidate con Set/Map, eviti il lavoro ripetuto e mantieni il codice breve e chiaro. Eserciti JavaScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare JavaScript Academy?

Non è richiesta alcuna esperienza precedente. JavaScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 3.

Quanto tempo richiede la lezione «Basi della Big-O, percorsi caldi e freddi (vantaggi per principianti)»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione JavaScript Academy?

Sì. Ogni lezione JavaScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Basi della Big-O, percorsi caldi e freddi (vantaggi per principianti)
  2. Evitare le perdite — closure, timer e riferimenti
  3. Introduzione al profiling (Node/DevTools) — semplici abitudini di misurazione
← Torna a JavaScript Academy