bubble sort java java sorting algorithms code examples
Questo tutorial spiegherà il Bubble Sort in Java insieme al principale algoritmo di ordinamento Java, all'implementazione del Bubble Sort ed esempi di codice:
Un algoritmo di ordinamento può essere definito come un algoritmo o una procedura per inserire gli elementi di una raccolta in un ordine specifico. Ad esempio, se hai una raccolta numerica come un ArrayList di interi, potresti voler disporre gli elementi di ArrayList in ordine crescente o decrescente.
Allo stesso modo, potresti voler disporre le stringhe di una raccolta di stringhe in ordine alfabetico o lessicografico. È qui che entrano in gioco gli algoritmi di ordinamento in Java.
come trovare xpath in ie
Cosa imparerai:
Principali algoritmi di ordinamento in Java
Gli algoritmi di ordinamento vengono solitamente valutati in base alle complessità temporali e spaziali. Java supporta vari algoritmi di ordinamento utilizzati per ordinare o organizzare le raccolte o le strutture di dati.
La tabella seguente mostra i principali algoritmi di ordinamento supportati in Java insieme alle loro complessità nel caso migliore / peggiore.
Complessità temporale | ||||
---|---|---|---|---|
Radix Sort | Algoritmo di ordinamento lineare. | O (nk) | O (nk) | O (nk) |
Algoritmo di ordinamento | Descrizione | Caso migliore | Nel peggiore dei casi | Caso medio |
Bubble Sort | Confronta ripetutamente l'elemento corrente con gli elementi adiacenti. Alla fine di ogni iterazione, l'elemento più pesante viene ribollito nella posizione corretta. | Su) | O (n ^ 2) | O (n ^ 2) |
Ordinamento di inserzione | Inserisce ogni elemento della collezione al suo posto. | Su) | O (n ^ 2) | O (n ^ 2) |
Unisci ordinamento | Segue l'approccio divide et impera. Divide la raccolta in sotto-raccolte più semplici, le ordina e poi unisce tutto | O (nlogn) | O (nlogn) | O (nlogn) |
Ordinamento rapido | Tecnica di smistamento più efficiente e ottimizzata. Utilizza divide et impera per ordinare la raccolta. | O (nlogn) | O (n ^ 2) | O (nlogn) |
Ordina selezione | Trova l'elemento più piccolo nella raccolta e lo inserisce nella posizione corretta alla fine di ogni iterazione | O (N ^ 2) | O (N ^ 2) | O (N ^ 2) |
Ordinamento mucchio | Gli elementi vengono ordinati in base alla creazione di heap minimo o heap massimo. | O (nlogn) | O (nlogn) | O (nlogn) |
Oltre alle tecniche di ordinamento fornite nella tabella sopra, Java supporta anche le seguenti tecniche di ordinamento:
- Ordinamento secchio
- Ordinamento conteggio
- Shell Sort
- Ordinamento a pettine
Ma queste tecniche sono usate con parsimonia nelle applicazioni pratiche, quindi queste tecniche non faranno parte di questa serie.
Parliamo della tecnica Bubble Sort in Java.
Bubble Sort in Java
Bubble sort è la più semplice di tutte le tecniche di ordinamento in Java. Questa tecnica ordina la raccolta confrontando ripetutamente due elementi adiacenti e scambiandoli se non sono nell'ordine desiderato. Pertanto, alla fine dell'iterazione, l'elemento più pesante viene ribollito per rivendicare la sua posizione legittima.
Se ci sono n elementi nell'elenco A dato da A (0), A (1), A (2), A (3),… .A (n-1), allora A (0) viene confrontato con A (1 ), A (1) viene confrontato con A (2) e così via. Dopo aver confrontato se il primo elemento è maggiore del secondo, i due elementi vengono scambiati se non sono in ordine.
Algoritmo di ordinamento delle bolle
L'algoritmo generale per Bubble Sort Technique è fornito di seguito:
Passo 1: Per i = 0 a N-1, ripetere il passaggio 2
Passo 2: Per J = i + 1 a N - ripeto
Passaggio 3: se A (J)> A (i)
Scambia A (J) e A (i)
(Fine del ciclo Inner for)
(End if Outer for loop)
Passaggio 4: Uscita
Dimostriamo ora la tecnica di Bubble Sort utilizzando un esempio illustrativo.
Prendiamo un array di dimensione 5 e illustriamo l'algoritmo di bubble sort.
Ordina una matrice utilizzando l'ordinamento a bolle
Il seguente elenco deve essere ordinato.
jms intervista domande e risposte per esperti
Come puoi vedere sopra, l'array è completamente ordinato.
L'illustrazione sopra può essere riassunta in forma tabulare come mostrato di seguito:
Passaggio | Elenco non ordinato | confronto | Elenco ordinato |
---|---|---|---|
{3,6,11,4,15} | {11.4} | {3,6,4,11,15} | |
1 | {11, 3, 6,15,4} | {11.3} | {3,11,6,15,4} |
{3,11,6,15,4} | {11.6} | {3,6,11,15,4} | |
{3,6,11,15,4} | {11.15} | {3,6,11,15,4} | |
{3,6,11,15,4} | {15.4} | {3,6,11,4,15} | |
Due | {3,6,11,4,15} | {3,6} | {3,6,11,4,15} |
{3,6,11,4,15} | {6.11} | {3,6,11,4,15} | |
3 | {3,6,4,11,15} | {3,6} | {3,6,4,11,15} |
{3,6,4,11,15} | {6.4} | {3,4,6,11,15} | |
{3,4,6,11,15} | SMISTATO |
Come mostrato nell'esempio precedente, l'elemento più grande bolle fino alla sua posizione corretta ad ogni iterazione / passaggio. In generale, quando raggiungiamo N-1 (dove N è un numero totale di elementi nell'elenco) passa; avremo l'intero elenco ordinato.
Bubble Sort Code Esempio
Il programma seguente mostra l'implementazione Java dell'algoritmo di bubble sort. Qui, manteniamo un array di numeri e usiamo due cicli for per attraversare gli elementi adiacenti dell'array. Se due elementi adiacenti non sono in ordine, vengono scambiati.
import java.util.*; class Main{ // Driver method to test above public static void main(String args()) { //declare an array of integers int intArray() = {23,43,13,65,11,62,76,83,9,71,84,34,96,80}; //print original array System.out.println('Original array: ' + Arrays.toString(intArray)); int n = intArray.length; //iterate over the array comparing adjacent elements for (int i = 0; i intArray(j+1)) { int temp = intArray(j); intArray(j) = intArray(j+1); intArray(j+1) = temp; } //print the sorted array System.out.println('Sorted array: ' + Arrays.toString(intArray)); } }
Produzione:
Serie originale: (23, 43, 13, 65, 11, 62, 76, 83, 9, 71, 84, 34, 96, 80)
Array ordinato: (9, 11, 13, 23, 34, 43, 62, 65, 71, 76, 80, 83, 84, 96)
Domande frequenti
D # 1) Quali sono gli algoritmi di ordinamento in Java?
Risposta: L'algoritmo di ordinamento può essere definito come un algoritmo o una procedura mediante la quale gli elementi di una raccolta possono essere ordinati o disposti in un modo desiderato.
Di seguito sono riportati alcuni degli algoritmi di ordinamento supportati in Java:
- Bubble Sort
- Ordinamento di inserzione
- Ordinamento di selezione
- Unisci ordinamento
- Quicksort
- Ordinamento radice
- Heapsort
Q # 2) Qual è il miglior algoritmo di ordinamento in Java?
Risposta: Merge Sort dovrebbe essere l'algoritmo di ordinamento più veloce in Java. Infatti, Java 7 ha utilizzato internamente l'ordinamento di tipo merge per implementare il metodo Collections.sort (). L'ordinamento rapido è anche un altro miglior algoritmo di ordinamento.
Q # 3) Cos'è Bubble sort in Java?
Risposta: Bubble sort è l'algoritmo più semplice in Java. L'ordinamento a bolle confronta sempre due elementi adiacenti nell'elenco e li scambia se non sono nell'ordine desiderato. Pertanto, alla fine di ogni iterazione o passaggio, l'elemento più pesante viene ribollito nella posizione corretta.
Q # 4) Perché Bubble sort NDue?
Risposta: Per implementare il bubble sort, usiamo due cicli for.
domanda e risposta dell'intervista di supporto tecnico
Il lavoro totale svolto è misurato da:
Quantità di lavoro svolto dal ciclo interno * numero totale di volte in cui viene eseguito il ciclo esterno.
Per un elenco di n elementi, il ciclo interno funziona per O (n) per ogni iterazione. Il ciclo esterno viene eseguito per l'iterazione O (n). Quindi il lavoro totale svolto è O (n) * O (n) = O (nDue)
Q # 15) Quali sono i vantaggi del Bubble sort?
Risposta: I vantaggi di Bubble Sort sono i seguenti:
- Facile da codificare e da capire.
- Sono necessarie poche righe di codice per implementare l'algoritmo.
- L'ordinamento viene eseguito sul posto, ovvero non è richiesta memoria aggiuntiva e quindi nessun sovraccarico di memoria.
- I dati ordinati sono immediatamente disponibili per l'elaborazione.
Conclusione
Finora, abbiamo discusso l'algoritmo di ordinamento Bubble Sort in Java. Abbiamo anche esplorato l'algoritmo e l'illustrazione dettagliata dell'ordinamento di un array utilizzando la Bubble Sort Technique. Quindi abbiamo implementato il programma Java in Bubble Sort.
Nel prossimo tutorial, continueremo con le altre tecniche di ordinamento in Java.
=> Controlla TUTTI i tutorial Java qui.
Lettura consigliata
- Ordina selezione in Java - Algoritmo di ordinamento selezione ed esempi
- Ordinamento di inserzione in Java - Algoritmo di ordinamento di inserzione ed esempi
- Bubble Sort in C ++ con esempi
- Come ordinare un array in Java - Tutorial con esempi
- Tutorial sulla lunghezza di array Java con esempi di codice
- Metodo MongoDB Sort () con esempi
- Comando di ordinamento Unix con sintassi, opzioni ed esempi
- Parola chiave Java 'questo': tutorial con esempi di codice