Python - Progettazione di algoritmi

L'algoritmo è una procedura passo passo, che definisce un insieme di istruzioni da eseguire in un certo ordine per ottenere l'output desiderato. Gli algoritmi sono generalmente creati indipendentemente dai linguaggi sottostanti, cioè un algoritmo può essere implementato in più di un linguaggio di programmazione.

Dal punto di vista della struttura dei dati, di seguito sono riportate alcune importanti categorie di algoritmi:

  • Search - Algoritmo per cercare un elemento in una struttura dati.

  • Sort - Algoritmo per ordinare gli elementi in un certo ordine.

  • Insert - Algoritmo per inserire un elemento in una struttura dati.

  • Update - Algoritmo per aggiornare un elemento esistente in una struttura dati.

  • Delete - Algoritmo per eliminare un elemento esistente da una struttura dati.

Caratteristiche di un algoritmo

Non tutte le procedure possono essere chiamate algoritmo. Un algoritmo dovrebbe avere le seguenti caratteristiche:

  • Unambiguous- L'algoritmo dovrebbe essere chiaro e non ambiguo. Ciascuno dei suoi passaggi (o fasi) e i relativi input / output dovrebbero essere chiari e portare a un solo significato.

  • Input - Un algoritmo dovrebbe avere 0 o più input ben definiti.

  • Output - Un algoritmo dovrebbe avere 1 o più output ben definiti e dovrebbe corrispondere all'output desiderato.

  • Finiteness - Gli algoritmi devono terminare dopo un numero finito di passaggi.

  • Feasibility - Dovrebbe essere fattibile con le risorse disponibili.

  • Independent - Un algoritmo dovrebbe avere istruzioni passo passo, che dovrebbero essere indipendenti da qualsiasi codice di programmazione.

Come scrivere un algoritmo?

Non esistono standard ben definiti per la scrittura di algoritmi. Piuttosto, dipende dal problema e dalle risorse. Gli algoritmi non vengono mai scritti per supportare un particolare codice di programmazione.

Come sappiamo, tutti i linguaggi di programmazione condividono costrutti di codice di base come loops (do, for, while), flow-control (if-else), ecc. Questi costrutti comuni possono essere usati per scrivere un algoritmo.

Scriviamo algoritmi in modo graduale, ma non è sempre così. La scrittura dell'algoritmo è un processo e viene eseguita dopo che il dominio del problema è ben definito. Cioè, dovremmo conoscere il dominio del problema, per il quale stiamo progettando una soluzione.

Esempio

Proviamo a imparare la scrittura di algoritmi utilizzando un esempio.

Problem - Progettare un algoritmo per aggiungere due numeri e visualizzare il risultato.

step 1 − START
step 2 − declare three integers a, b & c
step 3 − define values of a & b
step 4 − add values of a & b
step 5 − store output of step 4 to c
step 6 − print c
step 7 − STOP

Gli algoritmi dicono ai programmatori come codificare il programma. In alternativa, l'algoritmo può essere scritto come:

step 1 − START ADD
step 2 − get values of a & b
step 3 − c ← a + b
step 4 − display c
step 5 − STOP

Nella progettazione e nell'analisi degli algoritmi, di solito il secondo metodo viene utilizzato per descrivere un algoritmo. Rende facile per l'analista analizzare l'algoritmo ignorando tutte le definizioni indesiderate. Può osservare quali operazioni vengono utilizzate e come scorre il processo.

Scrittura step numbers, è facoltativo.

Progettiamo un algoritmo per ottenere una soluzione di un dato problema. Un problema può essere risolto in più modi.

Quindi, molti algoritmi di soluzione possono essere derivati ​​per un dato problema. Il passo successivo è analizzare gli algoritmi di soluzione proposta e implementare la soluzione più adatta.