130 Shares 6873 views

Ordinare gli algoritmi come sono

La classificazione è la disposizione degli oggetti in un certo ordine, ad esempio, in ordine decrescente o in ordine ascendente. In generale, gli elementi di ordinazione sono la manipolazione più comune con i dati, il che rende più facile trovare le informazioni giuste in futuro. Questo vale in gran parte per diversi sistemi di gestione dei database. Gli algoritmi di classificazione esistono attualmente in grandi numeri, anche se presentano caratteristiche simili (fasi): confronto e permutazione degli elementi in coppia finché la sequenza non viene ordinata.


Gli algoritmi di classificazione possono essere classificati in interno ed esterno. Il primo è caratterizzato dal fatto che tutti gli elementi ordinati vengono inseriti nella RAM e è possibile ottenere l'accesso casuale ad ognuno di essi. Quest'ultimo può lavorare con i dati situati nella memoria esterna (in file). L'accesso a tali elementi può essere implementato in sequenza.

È più conveniente ordinare gli elementi quando si trovano nella struttura di un array unidimensionale. Ogni tale elemento ha un numero di serie e l'elemento di matrice viene raggiunto dall'indice. Gli algoritmi di selezione in questo caso risultano essere il più semplice e comprensibile per l'uso.

Consideriamo un algoritmo di selezione delle discendenze interne mediante il metodo della bolla e la sua versione migliorata, differente nel tempo trascorso per l'ordinamento. La selezione tramite il metodo della bolla ha effettivamente molti nomi. Si chiama anche il metodo di ordinamento lineare o il metodo di scambio ordinato per scelta. Ma, però, non è un nome. Perché una bolla? Una volta in acqua, la bolla d'aria galleggia in su, in quanto è più facile. Così, per esempio, quando ordinate in ordine crescente, il più piccolo degli elementi apparirà in alto.

Prendiamo in considerazione la prima variante di algoritmo di ordinamento di una matrice mediante un metodo a bolle. L'algoritmo verbale per l' ordinamento di una matrice che ha l'identificatore mas e consiste in elementi N è così:

1. Posizionare l'elemento più grande dell'array al posto del primo elemento (mas [1]). Per farlo, verificheremo a sua volta tutti gli elementi restanti (mas [2], mas [3] … mas [N]). Se si scopre che uno qualsiasi degli elementi rimanenti è maggiore di mas [1], allora è necessario scambiarli (tramite la variabile aggiuntiva buf).

2. Dopo aver escluso l'elemento mas [1] dalla considerazione, ripetere il paragrafo 1 per l'elemento mas [2].

3. Queste azioni dovrebbero essere ripetute per tutti gli elementi tranne l'ultima.

Implementazione dell'algoritmo di ordinamento delle bolle nel linguaggio di programmazione Pascal:

Per quanto riguarda la seconda opzione (un metodo migliorato delle bolle), possiamo dire che questo è un algoritmo di ordinamento rapido. Quindi, se si tenta di utilizzarlo per ordinare un array già ordinato, l'algoritmo finirà il suo lavoro dopo il primo passaggio attraverso gli elementi dell'array. Ciò significa che non spenderemo le risorse di calcolo del sistema e il tempo per un confronto senza significato degli elementi.

Ecco l'implementazione di questo algoritmo di selezione per il linguaggio di programmazione Pascal:

Quindi, gli algoritmi di selezione sono un mezzo per sequenziare le sequenze di dati. Quando si sceglie un particolare algoritmo, si dovrebbe tener conto dei costi in termini di tempo e di risorse di sistema.