Ordine del secchio C ++

Ordine del secchio C ++

L'ordinamento è un metodo con cui ordiniamo gli elementi in una sequenza. Il secchio è uno degli algoritmi di smistamento ma questo algoritmo è un po 'diverso dagli altri algoritmi. Un secchio, come suggerisce il nome, contiene qualcosa in uno spazio separato come un contenitore. Questo algoritmo colloca gli elementi nel secchio in base alla condizione. Gli elementi sono divisi in diversi secchi e l'ordinamento viene eseguito su ogni secchio. Possiamo decidere quale algoritmo viene utilizzato per ordinare i secchi. Gli altri nomi per l'ordinamento del secchio sono l'ordinamento del bidone e l'ordinamento radix. Il raggruppamento di elementi da conservare in secchi è fatto in modo uniforme. Il secchio è l'algoritmo che è buono con piccoli array. Ma quando si tratta di ordinare gli array più grandi, questo algoritmo non è preferito perché la complessità aumenta e le prestazioni diminuiscono. Questo algoritmo viene applicato principalmente sui valori del punto mobile in cui dobbiamo raggruppare uniformemente gli elementi dell'array.

Vantaggi:

L'uso dell'ordinamento del secchio nella programmazione ha alcuni vantaggi:

  • È veloce a causa della distribuzione uniforme.
  • Il numero di confronti è inferiore rispetto ad altre tecniche di smistamento.

L'ordinamento del secchio è preferito quando dobbiamo distribuire i dati e quando hai a che fare con i valori a punta mobile.

Approccio a dispersione e guarigione

L'ordinamento del secchio funziona sull'approccio a dispersione. Per prima cosa spargi gli elementi nel secchio uniformemente. Una volta che sono stati ordinati nel secchio, sono riuniti in un posto e ordina l'array. Questa tecnica ci consente di risparmiare dal confronto di ogni elemento di array tra loro che aumenta la complessità e rallenta il processo di compilazione.

Il secchio ordina gli array dividendo gli elementi dell'array in secchi. Ogni secchio viene quindi conservato in una posizione separata. Il processo di memorizzazione può essere eseguito utilizzando tecniche o algoritmi diversi o applicando ricorsivamente l'algoritmo di ordinamento del secchio.

Esempio:

Ora spieghiamo il funzionamento del secchio con l'aiuto di un esempio. Vengono impiegati metodi diversi per l'ordinamento e la distribuzione degli array.

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
void bucktsort (float array_0 [], int n)
Vector B [n];
per (int i = 0; i< n; i++)
int bi_0 = n * array_0 [i];
B [BI_0].push_back (array_0 [i]);

per (int i = 0; i< n; i++)
Ordina (B [i].inizio (), b [i].FINE());
int indice = 0;
per (int i = 0; i< n; i++)
per (int j = 0; j < b[i].size(); j++)
array_0 [indice ++] = b [i] [j];

int main ()
float arr [] = 0.7, 0.5, 0.6, 0.65, 0.4;
int n = sizeof (arr) / sizeof (arr [0]);
Bucktsort (arr, n);
cout<< "Sorted array is \n";
per (int i = 0; i< n; i++)
cout<restituzione 0;

Prima di tutto, includono le tre importanti biblioteche -, e . La libreria contiene tutti i metodi per l'ordinamento e la ricerca. Poiché ordineremo l'array di valori di punta mobile, è obbligatorio includere questa libreria nel codice. Successivamente, includi la libreria che contiene tutti i metodi integrati che dobbiamo inserire e produrre i dati. La terza e ultima biblioteca è . Il vettore è come un array ma contiene una dimensione variabile. I vettori possono cambiare le dimensioni di un array in fase di esecuzione; Questa è la loro specialità. Poiché utilizziamo i vettori nel nostro codice, è importante importare una libreria che include il vettore in esso.

Dopo aver importato queste librerie, utilizzare "SPST SPACE NAME". Inoltre, definire un metodo chiamato "bucktsort" del tipo di ritorno vuoto. Passa due parametri in esso. Il primo parametro è l'array di tipo float "Array_0" che viene ordinato usando l'ordinamento del secchio. Il secondo parametro è una variabile di tipo intero "N". Quindi, definisci un array vettoriale di tipo di dati in virgola mobile. L'array è "b" della dimensione "n". Un array di tipo vettoriale viene utilizzato perché la dimensione dell'array è sconosciuta. Ora aggiungi gli elementi in diversi secchi usando il loop "per". Dichiarare l'iteratore "i" e quindi impostare la condizione per loop fino a quando l'iteratore non raggiunge il numero di elementi nell'array. L'attributo "N" mostra la dimensione dell'array che è sconosciuta. Osserviamo come ottenere le dimensioni di un array nel metodo principale (). Incrementare l'iteratore "i". Definire una variabile nel ciclo "per" la cui dimensione "n" viene moltiplicata per i valori dell'array che sono memorizzati nell'iteratore.

Nell'array vettoriale, impiega la funzione push_back () per spingere quell'elemento array. Dopo aver spinto l'array in secchi, ordina questi secchi usando un altro ciclo "per". Inizializza l'iteratore del ciclo e iterazione fino a raggiungere le dimensioni e continua a incrementare il loop. Ordina l'array nel corpo di "per" chiamando il metodo Ord () della libreria dell'algoritmo. Passa due parametri all'interno di questa funzione. Il primo argomento mostra l'indice iniziale dell'array e il secondo argomento mostra l'indice finale dell'array. La funzione Begin () avvia la funzione di ordinamento e la funzione end () si interrompe sull'ultimo indice. Dichiarare una variabile al di fuori del corpo di "per" per ottenere l'indice. Usa il ciclo "per" nidificato per combinare gli elementi dell'array dopo aver smistato in secchi separati.

Inoltre, chiama il metodo principale (). Qui, dichiara un array di punti mobili "arr" e inizializzalo. Quindi, definire un numero intero "n" per ottenere gli elementi dell'array. La funzione di dimensione (arr) ottiene le dimensioni di un array in byte. Moltiplica la dimensione con 10 e la dimensione del metodo (arr [0]) ottiene la dimensione di un solo elemento. Dividendo entrambi, possiamo acquisire i componenti totali dell'array. Ora, invoca il metodo bucktsort (). Questa funzione ordina l'array applicando l'algoritmo di ordinamento del secchio. Rappresenta un messaggio "Array Ordined is" sulla console usando il comando "cout". Per visualizzare l'array ordinato, utilizzare il ciclo "per" e impostare la condizione sul numero di elementi dell'array. Usa "cout" nel corpo di "per" per mostrare l'array aggiornato.

Conclusione

Abbiamo discusso del lavoro e dell'implementazione dell'ordinamento del secchio in c++. Poiché il nome è autoesplicativo, divide l'array e li memorizza nel secchio. Dopo aver smistato l'array, tutti i secchi sono combinati in una sequenza. Questo tipo di secchio è preferito quando ci occupiamo dei valori dei punti galleggianti perché divide i secchi in base a condizioni diverse e viene utilizzato per distribuire i dati in modo uniforme. L'articolo contiene tutte le informazioni che dovresti sapere prima di implementare l'ordinamento del secchio. Alcune diverse tecniche di smistamento e algoritmi sono usate per ordinare l'array; Tutti i metodi hanno pro e contro. Ciò che questo metodo ha è il punto più che è veloce e ordina l'array con un confronto minimo. Ma quando abbiamo un array di grandi dimensioni, l'ordinamento del secchio non è una buona opzione. L'articolo riassume qui con una breve panoramica dell'ordinamento del secchio.