Originariamente inviato da MItaly
Un vettore è un vettore (ovvero, è un blocco di memoria contiguo indicizzato, non è una lista concatenata).

Però è quello che Python chiama "lista" ([1, 2, 3, 4] di fatto è un vettore).
Ho scritto una stupidaggine; il ciclo globale sarebbe O(N), ma ogni iterazione è O(N-i) con i numero dell'iterazione per spostare indietro tutti gli elementi del vettore ad ogni estrazione. Si ha (con k tempo per spostare un elemento e j tempo per l'elaborazione dell'elemento estratto):

dunque è O(N^2).
No, o meglio, potresti ma a quel punto diventa una struttura dati leggermente diversa (con tempo costante ammortizzato per l'inserimento in testa e l'accodamento) in cui scegli dei tradeoff diversi; i std::vector ed equivalenti nei vari linguaggi in genere non implementano questa soluzione.
Verissimo, l'ho provato sulla mia pelle, anche se qualche "C++-ismo" ti rimane addosso.
Il problema è che se usi sempre quelli già pronti è facile che tu non sappia come funzionino, e quindi scegli strutture dati o algoritmi non ottimali.
Concordo in pieno.

Senza contare che, una volta che sai le basi, è poi facile impararti per i fatti tuoi linguaggi più astratti.
Fortunatamente in Python c'è una chiara distinzione tra le "liste" (ovvero di fatto array) e "dictionary" (di fatto hashtable). Questa non c'è invece in PHP, dove si usano gli "array magici" per tutto (il che è demenziale sotto ogni punto di vista).
Sì e no. Una volta che conosci linguaggi con paradigma imperativo con OOP muoverti tra l'uno e l'altro è fondamentalmente questione di cambiare sintassi e libreria, non di impostazione mentale.
Il supporto per la OOP dei linguaggi di livello più alto è in gran parte "zucchero sintattico", nulla ti impedisce di programmare object-oriented in C (e anzi è una cosa che si fa di frequente), anche se ovviamente è più faticoso che in altri linguaggi. D'altra parte, anche qui capisci cosa sta sotto a certe funzionalità dei linguaggi di più alto livello (il puntatore "this" nascosto, come si implementa effettivamente ereditarietà e polimorfismo, ...).
Puoi, ma non ha senso perché c'è già ed è ben più efficiente perché è implementata dietro le quinte in C.
Non so, non credo che lo scopo dell'università sia di darti abilità immediatamente spendibili, ma di metterti nelle condizioni di poter imparare facilmente quello che poi effettivamente ti servirà.
Quale assembly e quale assembler?