Algoritmi comuni e usati frequentemente delle strutture dati? [chiuso]

2

Ho programmato per un po 'e il vantaggio che mi manca rispetto ad altri programmi è l'algoritmo. So che cos'è l'elenco delle connessioni e l'albero binario, ma non ne conosco molti di più.

Ho fallito in 2 interviste, a causa di esercizi che mi richiedevano di conoscere alcuni algoritmi di strutture dati. Sto anche iniziando a costruire un progetto javascript che ha un po 'di elaborazione pesante, e ho bisogno di conoscere alcuni buoni algoritmi usati frequentemente?

    
posta XWormX 16.07.2013 - 21:12
fonte

2 risposte

4

Personalmente ritengo che sia difficile imparare abbastanza e dovresti sempre guardare a cosa apprendere successivamente, sia per approfondire o ampliare la tua attuale base di conoscenze.

Tuttavia, gli algoritmi di base e le strutture dati richieste sarebbero:

Minimo

  • Strutture dati
  • Uno, Complemento a due e Aritmetica correlata
  • Liste collegate
  • Tabelle hash (mappe o dizionari)
  • Array, alberi, pile, code, grafici, database

Algoritmi

  • Ordinamento
    • Bubble Sort (per sapere perché è male)
    • Inserimento Ordina
    • Unisci ordinamento
    • Ordinamento rapido
    • Ordina in stile Radice
    • Conteggio ordinamento e secchio Ordina
    • Ordinamento heap
  • Ricerca
    • Ricerca lineare
    • Ricerca binaria
    • Profondità prima ricerca
    • Larghezza Prima ricerca
  • Manipolazione delle stringhe
  • iterazione
  • Traversal dell'albero
  • Funzioni di hash
  • Implementazione concreta di una tabella hash, una struttura, una lista, una pila, una coda, una matrice e un set o una raccolta

Inoltre, la cosa più importante è sapere quando usarli .

Robert, in alto, ha fornito il link per List of Data Structures, Here for Algorithms

    
risposta data 16.07.2013 - 22:30
fonte
5

link

Inizia con

  • Array
  • Elenchi
  • Grafici
  • Alberi
  • Tabelle hash

Vedi anche link , in cui l'autore descrive i seguenti livelli, in ordine di crescente competenza:

  1. Able to explain and use Arrays, LinkedLists, Dictionaries etc in practical programming tasks

  2. Knows space and time tradeoffs of the basic data structures, Arrays vs LinkedLists, Able to explain how hashtables can be implemented and can handle collisions, Priority queues and ways to implement them etc.

  3. Knowledge of advanced data structures like B-trees, binomial and fibonacci heaps, AVL/Red Black trees, Splay Trees, Skip Lists, tries etc.

    
risposta data 16.07.2013 - 21:23
fonte

Leggi altre domande sui tag