Come ordinare un array in java senza usare il metodo di ordinamento

Come ordinare un array in java senza usare il metodo di ordinamento

In Java, l'ordinamento organizza valori in ordine discendente o ascendente. Gli array sono la struttura dei dati più semplice contenente un tipo simile di dati memorizzati in una posizione di memoria contigua. È possibile accedere ai suoi elementi direttamente utilizzando i numeri dell'indice. In array, gli indici iniziano con 0. Invece del predefinito "ordinare()"Metodo, ci sono anche molti altri metodi che possono essere utilizzati per l'ordinamento di array.

Questo articolo spiegherà le altre procedure per l'ordinamento degli array senza utilizzare il metodo Ord ().

Come ordinare un array in java senza usare il metodo di sorte ()?

Per ordinare un array in Java senza il "ordinare()"Metodo, puoi usare:

  • Ordine di selezione
  • Ordinamento di inserzione
  • Bolle Ord

Discutiamo questi metodi di smistamento e come ordinano gli elementi di un array.

Metodo 1: Array di ordinamento usando l'ordinamento di selezione

Trovare l'elemento del minimo array e inserirlo all'inizio dell'array è ciò che fa la selezione. È l'algoritmo di smistamento più elementare utilizzato per i confronti sul posto. Questo algoritmo separa l'array nella parte ordinata e non cortiosa.

La porzione non desiderata dell'array contiene l'array specificato mentre la parte ordinata è inizialmente vuota. La parte ordinata è all'inizio dell'array, mentre l'altra parte dell'array è dall'altra parte. Il primo elemento più piccolo dall'array non desiderato viene quindi selezionato e posizionato all'inizio dell'array, che è la parte dell'array ordinato. In seguito, il secondo elemento più piccolo viene scelto e inserito nel secondo slot. Il processo verrà ripetuto fino a quando l'array non viene completamente risolta.

Considera il seguente esempio per comprendere il concetto dichiarato più chiaramente.

Esempio

In questo esempio, abbiamo creato un array di tipo intero chiamato "vettore"Inizializzato con i seguenti valori:

int [] array = new int [] 3,12,4,67,23,14,89,5;

Creeremo una variabile di tipo intero "indice"Ciò memorizzerà gli indici dell'array, inizializzato con"-1"Perché l'indice dell'array inizia da 0, quindi nel ciclo memorizzerà"0"Indice:

int indice = -1;

Qui, ne useremo due "per"Loops, verrà utilizzato per iterare l'array fino alla lunghezza dell'array e il secondo verrà utilizzato per controllare la condizione e scambiare gli elementi se il primo elemento è inferiore a quello 2 °:

per (int i = 0; i indice = i;
per (int j = i; j <= array.length-1; j++)
if (array [j] < array[index])
indice = j;


int temp = array [i];
array [i] = array [indice];
array [indice] = temp;

Quindi, stampare l'array ordinato usando un altro "per" ciclo continuo:

per (int i = 0; i < array.length; i++)
Sistema.fuori.print (array [i] + ",");

L'output indica che l'array è ora ordinato in ordine crescente:

Nota: Se si desidera stampare l'array in ordine decrescente come forma ordinata, devi solo invertire la condizione if per scambiare gli elementi.

Metodo 2: Array di ordinamento usando l'ordinamento di inserimento

Un altro semplice metodo di smistamento usato per ordinare un array è l'inserimento. L'ordinamento di inserzione è un breve algoritmo di smistamento che opera come faresti con le carte da gioco nelle tue mani. È efficace se applicato a pochi valori. L'ordinamento di inserzione è adattivo ed è adatto per set di dati parzialmente ordinati.

Ordinati e non mozzafiato sono le sottocategorie dell'array in ordinamento di inserimento. Contrariamente all'ordinamento di selezione, l'ordinamento di inserimento raccoglie i valori dal valore non desiderato e li inserisce nella parte ordinata in un particolare indice. Nell'ordinamento di inserimento, il valore corrente viene confrontato con l'elemento esistente. Se trova un elemento esistente maggiore di quello corrente, l'elemento precedente viene spostato nella posizione successiva.

Esempio

Ora ordineremo lo stesso "vettore"Utilizzo dell'ordinamento di inserzione. Per fare ciò, itereremo l'array fino alla sua lunghezza usando il "per" ciclo continuo. Inizieremo il ciclo da "1"Indice. Quindi, imposteremo il valore della chiave come "KeyValue"E assegnalo l'elemento dell'array al primo indice.

Il aggiunto "Mentre"Loop controllerà gli elementi di un array confrontandolo con il KeyValue e scambiando gli elementi. Il ciclo while continua a correre fino a quando la condizione non viene valutata come falsa. Se la chiave è maggiore dell'elemento precedente, allora scambia entrambi gli elementi:

per (int i = 1; i < array.length; i++)
int keyValue = array [i];
int j = i - 1;
while (j> = 0 && array [j]> keyValue)
array [j + 1] = array [j];
j = j - 1;

array [j + 1] = keyValue;

Per la stampa di un array ordinato, ne useremo un altro "per" ciclo continuo:

per (int i = 0; i < array.length; i++)
Sistema.fuori.print (array [i] + ",");

Produzione

Metodo 3: Array di ordinamento usando l'ordinamento della bolla

L'ordinamento della bolla controlla due elementi vicini e li scambia fino a quando non sono nell'ordine desiderato. È chiamato "Bolle Ord"Perché ogni elemento di array si sposta alla fine dell'array in ogni iterazione, proprio come il modo in cui le bolle d'aria continuano a salire in cima all'acqua. È adatto solo a meno elementi a causa della sua alta complessità del tempo medio e peggiore.

In tipo a bolle, confronteremo il primo e il secondo elementi a partire dal primo indice. Se il primo elemento dell'array è maggiore, quindi scambia il primo e il secondo elementi. Successivamente, eseguirà un confronto tra i prossimi due elementi. Se non sono presenti nell'ordine specificato, questo metodo di smistamento li scambierà.

Esempio

Useremo Bubble Ord per disporre l'array in questo esempio. Come nell'ordinamento della selezione, due loop vengono utilizzati per ordinare gli elementi. Uno è per ripetere l'array fino alla sua lunghezza e il secondo ciclo viene utilizzato per controllare gli elementi e scambiarli in base alle condizioni:

per (int i = 0; i < array.length; i++)
per (int j = i + 1; j < array.length; j++)
int temp = 0;
if (array [i]> array [j])
temp = array [i];
array [i] = array [j];
array [j] = temp;


Per la stampa di array scambiati, useremo il "per" ciclo continuo:

per (int i = 0; i < array.length; i++)
Sistema.fuori.print (array [i] + ",");

Produzione

Nota: Se si desidera stampare l'array in ordine decrescente usando il metodo di ordinamento a bolle, è necessario solo invertire la condizione aggiunta.

Abbiamo offerto tutti i metodi di smistamento per l'ordinamento degli array senza usare il metodo Ord () predefinito.

Conclusione

Per ordinare un array senza usare il metodo Ord () in Java, è possibile utilizzare i semplici metodi di smistamento, incluso l'ordinamento di selezione, l'ordinamento di inserimento e l'ordinamento a bolle. Tutti questi sono i metodi di smistamento più semplici ed efficienti. Più specificamente, l'ordinamento di inserimento viene utilizzato quando si desidera inserire un elemento in un determinato indice. Tutti i metodi forniti possono essere utilizzati per ordinare un array in ordine decrescente o ascendente.