Introduzione all'ordinamento in C ++

Avendo una raccolta di elementi da ordinare, l'ordinamento aiuta a disporre gli elementi nel record in base alla relazione di ordinamento. Considera un record di file che contiene molte informazioni, per accedere a un elenco dal record è necessario disporre di un campo chiave per indicare la posizione corrente dell'elemento. Ad esempio, considera un elenco di nomi nel database, potrebbe essere ordinato in ordine alfabetico. L'ordinamento ha svolto un ruolo importante nel campo dei computer e della tecnologia. Vediamo di più in questo articolo.

Che cos'è l'ordinamento in C ++?

L'ordinamento è il concetto di base utilizzato dal programmatore o dal ricercatore per ordinare gli input richiesti. L'ordine di complessità è dato da 0 (N * log (N)). L'ordinamento di un input semplifica la risoluzione di molti problemi come la ricerca, l'elemento massimo e minimo. Sebbene un ordinamento disponga i dati nella sequenza, l'efficienza del processo è molto importante e si basa su due criteri: - Tempo e memoria necessari per eseguire l'ordinamento sui dati dati. Il tempo viene misurato contando i confronti dei tasti utilizzati. Esistono molti algoritmi disponibili per l'ordinamento. In generale, l'ordinamento in C ++ si distingue in due tipi:

  1. Ordinamento interno
  2. Ordinamento esterno

Sintassi ed esempio

Sintassi:

C ++ utilizza la funzione integrata sort () per i loro algoritmi, per ordinare i contenitori come vettori, array.

Ordina (matrice, matrice + dimensione);

Esempi:

#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)
#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)
#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)

Produzione:

Come funziona?

Per cominciare prenderemo l'ordinamento rapido, che è considerato un metodo importante tra i vari tipi di ordinamento. L'ordinamento di base di un array utilizza un approccio Quicksort. Esistono diversi modi per implementare l'ordinamento, lo scopo di ciascuna di queste tecniche è lo stesso di confrontare due elementi e scambiarli con la variabile temporanea. In questo articolo, discuteremo dell'ordinamento più importante utilizzato per l'implementazione. Di seguito sono riportati:

  1. Bubble Sort
  2. Ordinamento inserzione
  3. Ordinamento rapido
  4. Ordinamento selezione

Ci sono Merge Sort, radix sort, l'ordinamento su nastro di cui potremo discutere in seguito. In primo luogo, andremo con Bubble sort.

1. Bubble Sort

Bubble sort è uno dei metodi di ordinamento più semplici che possiamo usare per le applicazioni. In questa tecnica, gli swap successivi vengono effettuati attraverso i record da ordinare. Ad ogni passaggio, confronta la chiave con i dati e scambia gli elementi se non nell'ordine desiderato. L'ordinamento viene eseguito con gli elementi adiacenti nel momento in cui solo uno degli elementi viene inserito nella posizione ordinata dopo uno scambio.

Esempio: consideriamo una matrice non ordinata A () = (6, 2, 4, 7, 1)

62471
A (0)A (1)A (2)A (3)A (4)

Passaggio 1: Confronto di A (0)> A (1), se la condizione è vera, scambiare l'elemento (6> 2) vero, posizionare 2 in A (0). Allo stesso modo, tutti i passaggi prendono lo stesso finché l'array non viene ordinato.

Ora l'array è A () = (2, 6, 4, 7, 1)

Passaggio 2: 6 viene confrontato con 4. Poiché 6 è maggiore di 4. Pertanto, 6 e 4 vengono scambiati.

Ora l'array è A () = (2, 4, 6, 7, 1)

Passaggio 3: l' elemento 6 viene confrontato con 7. Poiché 6 <2 e gli elementi sono in ordine crescente, gli elementi non vengono scambiati.

La matrice ordinata è A () = (2, 4, 6, 7, 1).

Continua il processo fino a quando l'array non viene ordinato.

2. Ordinamento inserzione

In questa tecnica iniziamo con il secondo elemento di dati supponendo che il primo elemento sia già ordinato e il confronto venga effettuato con il secondo elemento e il passaggio viene continuato con l'altro elemento successivo. In una matrice di N elementi, è necessario disporre di passaggi N-1 per avere un elemento ordinato.

Considera un array A () = (8, 3, 6, 1)

8361

Passaggio 1: il primo elemento cerca l'elemento più grande dell'array da scambiare. Se è più grande rimane lo stesso e viene spostato sul secondo elemento, qui 8 è maggiore di tutti, non viene effettuato alcun cambio.

8361

Step2: scambio con il secondo elemento

3861

Step3: scambio con il terzo elemento

3681

Step4: scambio con il quarto elemento

1368

3. Ordinamento rapido

Questa tecnica segue l'algoritmo di divisione e conquista ed è considerata molto efficiente e più rapida per gli array enormi. Sono divisi in tre sottosezioni: una sinistra, una destra e il centro. L'elemento centrale ha un singolo valore ed è denominato pivot. Il meccanismo funziona in questo modo, l'elemento nel segmento sinistro non dovrebbe avere una chiave più grande dell'elemento centrale e l'elemento no in destra ha una chiave più piccola di quella dell'elemento centrale. Ora iniziamo con un'illustrazione del processo di ordinamento. Quicksort utilizza un concetto ricorsivo durante l'ordinamento della sottoparte. La matrice è divisa in sottoparte, di nuovo i segmenti sinistro e destro sono partizionati conquistando. Qui in questo esempio considerando l'ultimo elemento ha pivot e il primo elemento è considerato basso. Considera un elemento array

492211165630

Prendendo l'elemento più a destra ha l'elemento pivot = 30

162211305649

L'elemento maggiore del perno viene posizionato verso sinistra, più piccolo a destra.

1622115649

Il puntatore è posizionato sul perno e è partizionato attorno a un perno.

1122165649

Le sottoparti sono ordinate singolarmente.

111622304956

Alla fine abbiamo ottenuto una matrice ordinata.

4. Selezione ordinamento

Questa tecnica è anche chiamata ordinamento di scambio per la ricerca e l'ordinamento a doppia operazione. L'implementazione richiede l'ordinamento per selezione diretta come definito di seguito. Qui, è necessario identificare l'elemento più piccolo presente nell'array e questo elemento viene ordinato nella prima posizione, quindi viene identificato il secondo elemento più piccolo e viene ordinato nella seconda posizione. L'ordinamento di selezione esce dal suo ciclo quando la sottoparte non ordinata diventa vuota. La complessità temporale è data come O (n 2 ).

Considera il seguente array:

6326132312

1. Trovare l'elemento più piccolo e posizionarlo all'inizio e viene scambiato con la posizione.

1226132363

2. Il secondo elemento a (1) viene identificato confrontandolo con l'elemento minimo e posizionandolo nella seconda posizione, analogamente, il passaggio continua.

1213262364

Uscita ordinata finale

1213232664

Conclusione

Per concludere, questo articolo si è concentrato sui concetti di selezione e sul loro meccanismo di funzionamento. Tutte queste tecniche di ordinamento utilizzano concetti di elaborazione paralleli. L'ordinamento costituisce un elemento fondamentale nella strutturazione di algoritmi per risolvere i problemi dei dati nel mondo reale ordinando l'insieme di valori in base ai requisiti.

Articoli consigliati

Questa è una guida all'ordinamento in C ++. Qui discutiamo l'introduzione e la sintassi con esempi insieme a come funziona. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più–

  1. Ordinamento nel tableau
  2. Iteratore in C ++
  3. Funzioni di matrice in C
  4. Heap Ordina in C
  5. Come viene eseguito l'ordinamento in PHP?
  6. Ordinamento dell'heap in Python
  7. Iteratore in Java
  8. Principali 11 caratteristiche e vantaggi di C ++
  9. Iteratore in Python | Vantaggi ed esempi di Python

Categoria: