Ordine di selezione di Java

Ordine di selezione di Java
L'elemento più basso arriva per primo nel tipo di selezione. Quindi, il nodo iniziale è cambiato e ripetiamo per il resto dell'elenco. L'ordinamento di selezione in Java non richiede più spazio per l'ordinamento che prevede la determinazione ripetuta dell'elemento più piccolo e lo scambiarlo con quello che è già presente nella posizione adatta. Inoltre, possiamo determinare la complessità del tipo di selezione contando il numero di loop. Poiché l'ordinamento di selezione utilizza due per loop, la complessità del tempo è O (N2).

Esempio 1:

L'ordinamento di selezione si iterali sugli elementi nell'array non desiderato specificato. L'elemento minimo viene selezionato e spostato sul sottoraray ordinato in ogni iterazione dell'ordinamento di selezione. Il seguente programma viene utilizzato per l'ordinamento di selezione per ordinare un array in ordine crescente:

La classe "AscendingSelectionort" è costruita nel programma Java che è menzionato in precedenza. Questa classe è implementata con la funzione void "Ordina" in cui viene superata l'array intero "myarray". All'interno della funzione "Ordina", decalchiamo l'oggetto "ArrayZize" per ottenere le dimensioni dell'array dal metodo di lunghezza. Inoltre, distribuiamo il metodo per loop che itera il confine dell'array non desiderato, uno alla volta.

Il prossimo passo è sviluppare un oggetto chiamato "min" che individua l'elemento array non desiderato con il valore più basso. L'altro per loop viene invocato per recuperare la posizione dell'indice dell'elemento minimo dall'array. Il per loop iterato da "I+1" all'ultimo elemento di un array. Successivamente, abbiamo una sezione if per verificare se il "myarray [j]" è più piccolo di "myarray [min]" o no. In tal caso, l'indice minimo verrà incrementato. Quindi, applichiamo l'algoritmo di scambio scambiando il valore minimo dell'array con il primo valore. Lì, abbiamo un'altra funzione, il "PrintArray", che è stabilito per stampare l'array ordinato dall'ordinamento di selezione. Stampiamo l'array ordinato ripetendo ogni elemento dell'array attraverso il loop per loop.

Alla fine, testiamo l'implementazione dell'ordinamento di selezione all'interno del metodo principale (). Qui, definiamo l'oggetto "OBJ" per la classe "AscendingSelectionort" e inizializziamo anche l'array "MyArray" con gli elementi interi. Quindi, utilizziamo la funzione "ordina" usando quell'array come parametro per ordinare l'array, che è stato quindi stampato sulla console.

La tecnica di ordinamento di selezione viene utilizzata per produrre il seguente array che viene ordinato in ordine crescente:

Esempio 2:

L'ordinamento di selezione può essere utilizzato anche per l'array che non è preimpostata. L'utente inserisce per la prima volta le dimensioni dell'array. Quindi, entra nell'elemento all'interno dell'array con l'array specificato.

Nel precedente programma di Java, abbiamo definito la classe "UserDefinedElectionort". La classe è definita con la funzione "scambiarsi" e prende "x []", "io" e "j" come parametri. Gli elementi dell'array vengono confrontati per primi e quindi scambiati con la variabile "temp". Successivamente, abbiamo un'altra funzione - "UserDefinedElectionort" - in cui l'array "X []" e la dimensione dell'oggetto sono definiti come un parametro. Questa funzione è chiamata con il loop nidificato. Abbiamo attraversato per la prima volta l'array non prescelto dal primo indice all'ultimo.

Quindi, attraversiamo l'array non desiderato da "I+1" all'ultimo valore dell'array per ottenere l'elemento minimo dall'array non resortato e aggiornare l'indice minimo. Successivamente, chiamiamo la funzione "scambiarsi" per scambiare x [i] con X [Min_Index]. Quindi, abbiamo un modulo di metodo principale () in cui prendiamo l'input dall'utente creando l'oggetto "input" e chiamando il sistema nel metodo. L'oggetto "s" indica la lunghezza dell'array che utilizza il metodo NextInt () per leggere il token successivo dal valore di input da parte dell'utente. La lunghezza dell'array viene dichiarata all'interno dell'array "x []" e quindi ottenuta come valore per l'array all'interno della dimensione dell'array. L'array iniziale viene visualizzato prima, quindi l'array ordinato dal metodo di ordinamento di selezione viene attraversato e visualizzato.

Sulla compilazione del codice precedente, il terminale ha chiesto prima di inserire le dimensioni dell'array. Dopo aver definito le dimensioni dell'array, l'utente inserisce gli elementi casuali. Quindi, viene eseguito l'ordinamento di selezione. L'array iniziale non desiderato e l'array ordinato di selezione vengono visualizzati nel seguente:

Esempio 3:

Successivamente, l'ordinamento di selezione viene eseguito nell'elenco singolarmente collegato. La tecnica prevede lo scambio del nodo dell'elenco collegato anziché i dati all'interno dei nodi.

Nel programma precedente, abbiamo una classe Java "LinkedListSelectionort" in cui definiamo un'altra classe, il "nodo". La classe "Node" viene dichiarata con l'oggetto "MyData" e l'oggetto nodo, "Next_node". Quindi, abbiamo una funzione "Swapnodes" in cui il nodo corrente "Curr_n1" viene scambiato con un altro nodo di corrente "Curr_n2" senza scambiare gli elementi del nodo nell'elenco collegato. Innanzitutto, abbiamo realizzato il "Curr_n2" e quindi regola i collegamenti. Successivamente, scambiamo i nodi con la variabile temporanea.

Lì, abbiamo un'altra funzione "SelectionSort" che utilizza l'approccio di ordinamento di selezione ricorsiva per ordinare l'elenco collegato. Scopriamo con l'IF-Statement se l'elenco collegato ha il nodo. Quindi, definiamo il nodo puntatore "min_node" per il valore dei dati minimo e il puntatore del nodo "prev_min" per avere il valore di dati precedente del nodo. Il per loop per attraversa tutti i nodi dell'elenco collegato e aumenta il nodo minimo e il nodo precedente. Successivamente, applichiamo la condizione: se il Min_Node e il nodo della testa sono diversi, scambiamo il Min_Node con il nodo della testa. L'elenco collegato rimanente viene ordinato in modo ricorsivo mettendo la "testa.Next_Node ”nella funzione SelectionSort.

Inoltre, creiamo la funzione "SortNodes" che verifica che l'elenco collegato dato non dovrebbe essere vuoto e ordinare l'elenco tramite la funzione Selectionsort (). Quindi, abbiamo la funzione successiva che è "push" per aggiungere un nodo alla posizione iniziale dell'elenco collegato. Definiamo l'oggetto "newnode" per allocare il nodo e inserire i dati all'interno di quel nodo. Successivamente, colleghiamo il riferimento alla testa con il nuovo nodo e riallociamo il riferimento alla testa a un nuovo nodo. Successivamente, creiamo una funzione "DisplayList" per stampare l'elenco collegato attraverso il loop while.

Abbiamo un metodo principale () in cui l'elenco collegato viene inizializzato usando il metodo push. Verranno stampati gli elementi dell'elenco collegato non mobili. Quindi, invochiamo la funzione SortNodes () che porta l'oggetto principale come parametro per eseguire l'operazione di ordinamento di selezione. L'elenco collegato ordinato è stampato dal metodo DisplayList () che prende anche la "testa" come argomento.

Viene visualizzato l'elenco collegato originale. Successivamente, l'elenco collegato ordinato viene stampato nel seguente:

Conclusione

L'ordinamento di selezione specifica essenzialmente dove un elemento inizia dagli altri elementi. L'ordinamento di selezione in Java viene applicato quando è necessario ordinare le piccole liste. Ha anche un impatto sulla velocità di scrittura alla memoria, in particolare la memoria flash. Il concetto di base dell'utilizzo della selezione in Java è quello di dividere un array nelle sezioni ordinate e non mobili e quindi ordinare l'array usando i confronti. Gli esempi di ordinamento della selezione sono dimostrati con il valore predefinito e l'altro caso.