UN algoritmo è un insieme di istruzioni progettate per eseguire un'attività specifica. Cioè, è una procedura sistematica che in un numero finito di passaggi produce la risposta a una domanda o la soluzione di un problema. Un esempio di algoritmo è quello del motore di ricerca Google, in cui inserendo una parola, fornisce diversi risultati sotto forma di pagine web.
Può essere un processo complesso, come la riproduzione di un file musicale, o un'operazione semplice, come l'aggiunta di due numeri. Nella programmazione di computer, gli algoritmi vengono creati come funzioni. Queste funzioni sono piccoli programmi che possono essere referenziati da un programma più grande.
Un'applicazione per la visualizzazione di immagini può contenere una libreria di funzioni, ciascuna delle quali utilizza un particolare algoritmo per rappresentare diversi formati di file di immagine..
Un programma di modifica delle immagini può contenere algoritmi progettati per elaborare i dati delle immagini. Alcuni esempi sono ritaglio, ridimensionamento, nitidezza, sfocatura, riduzione degli occhi rossi e miglioramento del colore..
Indice articolo
L'algoritmo deve essere chiaro e inequivocabile. Ciascuno dei tuoi passaggi o azioni deve essere definito con precisione, rigorosamente chiaro sotto tutti gli aspetti e deve avere inequivocabilmente un solo significato..
Un algoritmo ha zero o più input, presi da uno specifico insieme di oggetti. Se l'algoritmo indica che i dati di input dovrebbero essere presi, questi dati di input dovrebbero essere ben definiti.
L'algoritmo ha sempre uno o più output, che hanno una relazione con gli input. L'algoritmo deve definire chiaramente quali informazioni di output verranno prodotte e deve anche essere ben definito.
L'algoritmo deve essere finito, cioè deve sempre finire ad un certo punto, dopo un numero finito di passaggi, e non rimanere agganciato a loop infiniti o simili.
L'algoritmo deve essere intelligente e semplice, in modo tale da poter essere eseguito senza problemi con le risorse disponibili. Pertanto, non deve contenere alcuna tecnologia futura.
L'algoritmo progettato deve essere indipendente dal linguaggio, cioè deve essere costituito solo da semplici istruzioni che possono essere implementate in qualsiasi linguaggio di programmazione e, comunque, il risultato è sempre lo stesso, come previsto.
Esistono sempre modi diversi per eseguire un'operazione specifica all'interno di un programma. Pertanto, i programmatori cercano di creare gli algoritmi più efficienti possibili..
Con l'utilizzo di algoritmi molto efficienti, è possibile garantire che i programmi vengano eseguiti alla massima velocità, utilizzando un minimo di risorse di sistema.
Tuttavia, gli algoritmi non vengono sempre prodotti in modo impeccabile la prima volta. Per questo motivo, gli sviluppatori stanno cercando di migliorarli per includerli nei futuri aggiornamenti software..
Pertanto, ogni volta che si conosce una nuova versione di un'applicazione con prestazioni migliori, significa che questa versione contiene algoritmi più efficienti.
L'algoritmo è uno strumento estremamente utile, utilizzato per eseguire lavori. In informatica, la scelta del miglior algoritmo garantisce che il computer svolga il compito dato nel miglior modo possibile.
Pertanto, serve per ottimizzare un programma per computer con le risorse disponibili. Cioè, quando decidi di risolvere un problema attraverso i migliori algoritmi, vuoi la migliore combinazione di velocità del programma e minor consumo di memoria.
I diversi algoritmi che possono essere studiati sono tanto vari quanto i problemi che risolvono. Tuttavia, è molto probabile che il problema che stai cercando di risolvere sia simile a un altro problema per alcuni aspetti..
Comprendendo un'ampia gamma di algoritmi, è possibile scegliere il più adatto a un problema e applicarlo correttamente.
Questi algoritmi sono specificamente sintonizzati e ottimizzati per i tipi di file a cui sono destinati. Ad esempio, ogni formato audio utilizza un modo diverso di memorizzare i dati. Quando decodificato dal codec audio, genererà un file audio simile alla forma d'onda originale.
Gli algoritmi vengono utilizzati anche per proteggere i dati o le linee di comunicazione. Invece di archiviare i dati compressi in modo da utilizzare meno spazio su disco, vengono archiviati in modo che altri programmi non possano rilevarli. Quando i dati vengono crittografati, ciò che viene archiviato non ha l'aspetto di ciò che è.
Per fare in modo che un computer faccia qualcosa, devi scrivere un programma per computer. Per scrivere questo programma devi dire al computer, passo dopo passo, cosa vuoi che faccia.
Il computer quindi esegue il programma, eseguendo automaticamente ogni istruzione, per ottenere il risultato finale. Oltre ad indicare cosa fare al computer, puoi anche scegliere come lo farà, tramite l'algoritmo, essendo la tecnica base utilizzata per fare il lavoro.
Supponiamo che tu abbia un amico che arriva in aeroporto e ha bisogno di andare dall'aeroporto a casa nostra. Questi sono quattro diversi algoritmi che potrebbero essere forniti per risolvere questa situazione:
- Quando arriva l'aereo, chiama il mio cellulare.
- Incontriamoci fuori dall'area di ritiro bagagli.
- Vai alla stazione dei taxi.
- Prendi un taxi.
- Dai all'autista il mio indirizzo.
- Uscendo dall'aeroporto, prendere l'autobus numero 70.
- Quando arrivi a Main Street, prendi l'autobus 14.
- Scendi a Elmo Street.
- Cammina per due isolati a nord fino a casa mia.
- Prendi una navetta per il luogo in cui noleggiano le auto.
- Noleggia un veicolo.
- Segui le istruzioni del GPS per arrivare a casa mia.
Tutti e quattro gli algoritmi raggiungono lo stesso identico obiettivo, ma ciascuno lo fa in modo diverso. Ogni algoritmo ha anche un costo e un tempo di viaggio diversi. Pertanto, l'algoritmo viene scelto in base alle circostanze.
L'algoritmo deve disporre di determinate risorse per poter leggere i valori da una fonte esterna. La maggior parte degli algoritmi richiede alcuni valori di dati per definire un problema specifico. Ad esempio, i coefficienti di un polinomio.
L'algoritmo deve disporre di determinate risorse per poter eseguire calcoli aritmetici, confronti, controllare le condizioni logiche, ecc..
L'algoritmo deve disporre di determinati mezzi per poter scegliere tra due o più possibili linee di azione, sulla base dei dati iniziali, dell'input dell'utente e / o dei risultati calcolati..
L'algoritmo deve avere determinati mezzi per essere in grado di eseguire ripetutamente una serie di istruzioni, per un numero fisso di volte o fino a quando non viene soddisfatta una condizione logica.
L'algoritmo deve disporre di determinate risorse per poter informare l'utente dei risultati che ha calcolato, o per poter richiedere ulteriori dati all'utente.
Questo algoritmo è molto interessante, perché si chiama con un valore diverso come parametro di input, che ha ottenuto dopo aver risolto il parametro di input precedente. Cioè, chiama se stesso ripetutamente finché il problema non viene risolto.
Problemi come la Torre di Hanoi o la ricerca approfondita di un grafo possono essere facilmente risolti utilizzando questi tipi di algoritmi..
In questi algoritmi, è diviso in due parti. Nella prima parte il problema in questione è suddiviso in sottoproblemi più piccoli dello stesso tipo. Allo stesso modo, nella seconda parte vengono risolti i suoi sottoproblemi, combinando poi entrambe le parti per produrre la soluzione finale del problema..
Ad esempio, con questi algoritmi è possibile eseguire ordinamenti combinati e ordinamenti rapidi.
Questi algoritmi funzionano ricordando i risultati della corsa precedente e utilizzandoli per trovare nuovi risultati. Cioè, risolvono problemi complessi dividendoli in più semplici sottoproblemi e quindi risolvendoli ciascuno, archiviandoli in un secondo momento per un uso successivo..
Questo algoritmo ricerca ciecamente tutte le possibili soluzioni per trovare una o più soluzioni in grado di risolvere una funzione. Puoi pensare alla forza bruta come all'utilizzo di tutte le possibili combinazioni di numeri per aprire una cassaforte..
Questo algoritmo risolve i problemi in modo ricorsivo e cerca di risolvere un problema risolvendone ogni parte. Se la soluzione non riesce, viene rimossa e viene eseguito il backtracking per trovare un'altra soluzione.
Cioè, questo algoritmo risolve un problema secondario, ma se questo non risolve il problema totale, annulla l'ultimo passaggio e ricomincia a trovare la soluzione al problema..
Questo pseudocodice trova il fattoriale di un intero non negativo "N", utilizzando un algoritmo di ricorsione:
La sequenza di Fibonacci è un buon esempio di algoritmo di programmazione dinamica. Puoi vederlo in questo pseudocodice:
- Se (N = 0 o N = 1), Fibonacci (N) = 0
- In caso contrario, Fibonacci (N) = Fibonacci (N-1) + Fibonacci (N-2)
Il problema degli scacchi a 8 regine è un buon esempio. Questo problema stabilisce che ci sono 8 pezzi di regina su una scacchiera e devono essere posizionati in modo tale che nessuna delle regine sia in grado di attaccare nessun altro dopo che sono state organizzate..
- Algoritmo per la diagnosi dell'HIV.
- I motori di ricerca su Internet utilizzano algoritmi proprietari per visualizzare i risultati più rilevanti dal loro indice di ricerca per query specifiche..
- Le ricette, come le equazioni matematiche, sono algoritmi.
- La posta elettronica sa dove inviare grazie agli algoritmi.
- Il contenuto visto sui social network arriva attraverso algoritmi. In effetti, tutto ciò che viene fatto sul web è il prodotto di algoritmi.
- I videogiochi sono narrazione algoritmica.
- Le app per smartphone sono solo algoritmi.
- La maggior parte delle transazioni finanziarie vengono eseguite utilizzando algoritmi.
- Ogni volta che una colonna viene ordinata in un foglio di calcolo, intervengono gli algoritmi.
Nessun utente ha ancora commentato questo articolo.