Non usare le funzioni non è il marchio di efficienza algoritmica. Gli algoritmi stessi sono indipendenti dal linguaggio, sono modi ben definiti di fare qualcosa che può essere implementato nella maggior parte delle lingue. L'efficienza algoritmica è molto più preoccupata di idee come "input dato di dimensione n, quanti passaggi ha bisogno di un algoritmo per calcolare la risposta y?" e "se aumento l'input, come influenza l'algoritmo?"
Immagina questo - cosa succederebbe se ordinassi 100 milioni di elementi in una lista? Se la tua funzione era qualcosa come bubble sort , non usare una chiamata di funzione ti farà risparmiare qualche microsecondo di elaborazione, ma l'ordinamento effettivo impiegherà molto più tempo e nani i guadagni dal non utilizzare le chiamate di funzione o qualsiasi altro numero di cose (in più, non rompere il tuo codice di solito è un cattivo design e cattivo per la manutenzione!).
L'efficienza algoritmica viene in genere notata con Notazione Big-O e fa parte di teoria della complessità {/a>. Si riferiscono anche a strutture di dati , che sono cose come liste collegate, matrici, alberi, grafici, ecc.
Probabilmente vorrai leggere su algoritmi fondamentali di base, strutture dati e idee, come:
Per i libri, se sei interessato, ci sono:
PS: molte volte vedrai persone che vogliono ottimizzare il loro codice per spremere il più possibile le sue prestazioni. Quello che dovrebbe essere chiesto prima è se hanno scelto l'algoritmo giusto per farlo e stanno usando le strutture dati corrette.