Ordinamento di inserzione in c ++

Ordinamento di inserzione in c ++
L'ordinamento di inserzione è un algoritmo di organizzazione di base o un approccio che opera allo stesso modo in cui potresti organizzare mazzi di carte nei palmi delle mani. L'assortimento è separato in due parti: una che viene ordinata e l'altra che non lo è. Gli articoli del segmento non ordinato sono designati e situati nel frammento organizzato nell'ordine corretto. L'ordinamento di inserzione confronterà i due valori consecutivi tra loro e questa metodologia è più efficace del tipo di bolle e selezione, ma non così veloce come l'ordinamento rapido o unisci.

Cominciamo con l'avvio dell'applicazione Shell in Ubuntu 20.04 Sistema con Ctrl+Alt+T. Dopo averlo avviato, crea un file C ++ nella cartella domestica tramite l'istruzione "Tocca" mostrata nell'immagine. Nomina il file C ++ con l'estensione "CC". Successivamente, apri il tuo file in qualsiasi editor integrato di Ubuntu 20.04 Sistema (i.e. Gnu nano, testo o vim).

Esempio 1:

Iniziamo con il primo esempio per utilizzare l'ordinamento di inserimento per ordinare un array casuale non ordinato in ordine crescente di numeri. Abbiamo iniziato il nostro codice con l'inclusione del "Bit/STDC++.H "Libreria standard. Quindi, abbiamo aggiunto lo "spazio dei nomi" standard di C ++ con la parola breve "usando" e "std". La funzione "Sort ()" utilizza l'array "A" e la sua dimensione "N" per ordinare l'array casuale non ordinato in uno ordinato tramite la tecnica di ordinamento di inserimento.

Abbiamo dichiarato una variabile intera "chiave" e il ciclo "per" è in corso. Fino a quando il ciclo interagisce fino alla dimensione "N" di un array, il valore su ogni indice "I" dell'array "A" viene salvato nella variabile "chiave".

Inizializza un'altra variabile "J" con il valore precedente dell'indice "i" i.e. "J = i -1". Ecco che arriva il ciclo. Mentre l'indice precedente “J” è maggiore o uguale a 0 e il valore nell'indice “J” è maggiore del valore nella variabile “chiave” i.e. Il valore all'indice "i", continuerà ad aggiungere il valore all'indice "j" all'indice "j+1" che in realtà è 'i ". Insieme a ciò, l'indice "J" diminuirà di 1 i.e. Il precedente di "J" diventerà "J".

Dopo che il ciclo termina, il valore in "J+1" viene assegnato con valore "chiave". io.e. a "io". Per renderlo più chiaro, supponiamo se i = 1 allora j = 0. Quindi, se il valore su "j" è maggiore della "chiave", scambieremo il valore su "j" con il prossimo valore consecutivo.

Questa funzione è eseguita dalla funzione principale () passando l'array e la sua dimensione specifica nei parametri. Il ciclo "per" viene utilizzato per iterare i valori dell'array dall'indice 0 all'ultimo indice "n-1" di un array. Su ogni iterazione, ogni valore viene visualizzato sulla shell usando l'indice specifico di un array per una particolare iterazione tramite l'istruzione Cout. L'ultima istruzione Cout viene utilizzata per mettere l'estremità della linea dopo il display dell'intero array "A" sulla shell.

L'esecuzione di questo codice inizia dal metodo principale (). Abbiamo inizializzato un array "A" di tipo intero con alcuni valori di numeri casuali. Questo array non è ancora ordinato. Stiamo ottenendo le dimensioni di un array usando la variabile "N" e applicando la funzione sizeof () sull'array "A".

L'oggetto Cout viene utilizzato per far sapere all'utente che il programma visualizzerà l'array non eseguito originale sullo schermo. La funzione "Show" viene chiamata passando l'array "A" e dimensione "N" per visualizzare l'array ordinato in modo casuale. La prossima istruzione Cout viene utilizzata per farti sapere che il programma visualizzerà l'array ordinato sulla shell attraverso l'uso dell'ordinamento di inserimento.

Il "sort ()" viene chiamato passando un array di ordini casuali "A" e le sue dimensioni. La funzione Ordine () ordina l'array e la funzione show () visualizza l'array ordinato aggiornato "a" sulla schermata della shell del nostro terminale Linux. Il codice complessivo è ora completato qui.

Dopo la raccolta del nostro codice, non abbiamo errori. Abbiamo eseguito il nostro codice tramite "./UN.istruzioni fuori "mostrate di seguito. L'array non desiderato è stato visualizzato e quindi l'array ordinato è in ordine crescente tramite l'ordinamento di inserimento.

Esempio 2:

Diamo un'occhiata a un altro esempio di tipo di inserimento. All'interno di questo esempio, non utilizzeremo alcuna funzione di ordinamento definita dall'utente per eseguire l'ordinamento di inserimento. Useremo solo la funzione principale () nel codice per eseguirla. Quindi, apriamo lo stesso file di codice e aggiorniamo il codice. Aggiungi la libreria di input e output standard C ++ con la parola chiave "#include". Lo "spazio dei nomi standard" è dichiarato utilizzando la parola chiave "usando".

Iniziamo la funzione principale () del tipo intero e inizializziamo un array intero “A” della dimensione 10 con i 10 valori numerici. Questi elementi di un array "a" sono effettuati in modo casuale indipendentemente dall'ordine. L'istruzione Cout viene utilizzata per affermare che visualizzeremo l'elenco prima di ordinarlo. Dopo questo, utilizziamo il ciclo "per" per iterare i valori dell'array originale non richiesto "A" fino al suo ultimo elemento. Ad ogni iterazione del ciclo "per", ogni stesso valore dell'indice dall'array "A" viene visualizzato sulla shell tramite l'istruzione "cout". Dopo questo ciclo "per", utilizziamo un altro ciclo "per" per eseguire l'ordinamento "inserimento".

Questo ciclo "per" è inizializzato da "k = 0" a "k = 10". Mentre il ciclo si sta iterato da 0 a 10 ° indice di array "A", continuiamo ad assegnare il valore all'indice "k" dell'array "a" alla nuova variabile intera "temp". Inoltre, scopriamo il predecessore "J" del valore "k" usando il "k-1". Il ciclo "while" è qui per verificare se l'indice predecessore "j" è maggiore di 0 e il valore nella variabile "temp" è inferiore o uguale al valore del predecessore "j" dell'array "a".

Se questa condizione soddisfa, il valore del predecessore è assegnato al prossimo predecessore "J".e. "J+1". Insieme a questo, continuiamo a ridurre l'indice predecessore i.e. Muoversi nella direzione all'indietro. Dopo il termine del ciclo, assegniamo il valore di "temp" al predecessore successivo "J". Dopo la fine del ciclo "per", visualizziamo l'array ordinato "A". Per questo, utilizziamo la dichiarazione "cout" nel ciclo "per". Il codice è completato qui e è pronto per l'uso.

Abbiamo compilato il file di codice "Inserimento.CC "" ha eseguito il file con il "./UN.istruzioni fuori ". L'array casuale non desiderato viene visualizzato per primo. Successivamente, l'array ordinato attraverso l'ordinamento di inserimento viene visualizzato alla fine secondo l'uscita seguente.

Conclusione

Questo articolo riguarda l'uso dell'ordinamento di inserimento per ordinare un array casuale in un programma C ++. Abbiamo discusso del modo convenzionale di ordinare l'array con l'ordinamento di inserimento nei primi esempi I.e. Utilizzo di Ordine, Display e la funzione Driver principale (). Successivamente, abbiamo usato il nuovo metodo per eseguire l'ordinamento di inserimento in una singola funzione driver ().