bubble sort c with examples
Tecnica di Bubble Sort in C ++.
Bubble Sort è la più semplice delle tecniche di ordinamento.
Nella tecnica di Bubble Sort, ciascuno degli elementi nell'elenco viene confrontato con il suo elemento adiacente. Quindi, se ci sono n elementi nell'elenco A, 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 quindi scambiati.
=> Visita qui per il corso completo C ++ degli esperti.
Cosa imparerai:
domande e risposte dell'intervista per analista aziendale
- Tecnica Bubble Sort
- Illustrazione
- Esempio C ++
- Esempio Java
- Analisi della complessità dell'algoritmo di ordinamento delle bolle
- Conclusione
- Lettura consigliata
Tecnica Bubble Sort
Utilizzando la tecnica del Bubble sort, l'ordinamento viene eseguito in passaggi o iterazioni. Pertanto, alla fine di ogni iterazione, l'elemento più pesante viene inserito nella posizione corretta nell'elenco. In altre parole, l'elemento più grande dell'elenco si gonfia.
Di seguito abbiamo fornito un algoritmo generale per la tecnica del bubble sort.
Algoritmo generale
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
Ecco uno pseudo-codice per l'algoritmo di ordinamento delle bolle, in cui attraversiamo l'elenco utilizzando due cicli iterativi.
Nel primo ciclo, partiamo dallo 0thelemento e nel ciclo successivo, partiamo da un elemento adiacente. Nel corpo del ciclo interno, confrontiamo ciascuno degli elementi adiacenti e li scambiamo se non sono in ordine. Alla fine di ogni iterazione del ciclo esterno, l'elemento più pesante ribolle alla fine.
Pseudocodice
Procedure bubble_sort (array , N) array – list of items to be sorted N – size of array begin swapped = false repeat for I = 1 to N-1 if array[i-1] > array[i] then swap array[i-1] and array[i] swapped = true end if end for until not swapped end procedure
Quanto sopra è lo pseudo-codice per la tecnica del bubble sort. Illustriamo ora questa tecnica utilizzando un'illustrazione dettagliata.
Illustrazione
Prendiamo un array di dimensione 5 e illustriamo l'algoritmo di bubble sort.
Array completamente ordinato.
L'illustrazione sopra può essere riassunta in una forma tabulare come mostrato di seguito:
Passaggio | Elenco non ordinato | confronto | Elenco ordinato |
---|---|---|---|
{5,0,10,12,15} | {10.12} | {5,0,10,12,15} | |
1 | {10,5,15,0,12} | {10.5} | {5,10,15,0,12} |
{5,10,15,0,12} | {10.15} | {5,10,15,0,12} | |
{5,10,15,0,12} | {15.0} | {5,10,0,15,12} | |
{5,10,0,15,12} | {15.12} | {5,10,0,12,15} | |
Due | {5,10,0,12,15} | {5,10} | {5,10,0,12,15} |
{5,10,0,12,15} | {10.0} | {5,0,10,12,15} | |
3 | {5,0,10,12,15} | {5,0} | {0,5,10,12,15} |
{5,0,10,12,15} | {5,10} | {5,0,10,12,15} | |
{5,0,10,12,15} | SMISTATO |
Come mostrato nell'illustrazione, ad ogni passaggio, l'elemento più grande bolle fino all'ultimo, ordinando così l'elenco a ogni passaggio. Come accennato nell'introduzione, ogni elemento viene confrontato con il suo elemento adiacente e scambiato l'uno con l'altro se non sono in ordine.
Così, come mostrato nell'illustrazione sopra, alla fine del primo passaggio, se la matrice deve essere ordinata in ordine crescente, l'elemento più grande viene posizionato alla fine dell'elenco. Per il secondo passaggio, il secondo elemento più grande viene posizionato nella penultima posizione nell'elenco e così via.
Quando raggiungiamo N-1 (dove N è il numero totale di elementi nella lista), avremo l'intero elenco ordinato.
miglior sito per guardare anime online
La tecnica di Bubble sort può essere implementata in qualsiasi linguaggio di programmazione. Abbiamo implementato l'algoritmo di ordinamento delle bolle utilizzando il linguaggio C ++ e Java di seguito.
Esempio C ++
Vediamo un esempio di programmazione per dimostrare l'ordinamento delle bolle.
#include using namespace std; int main () { int i, j,temp,pass=0; int a[10] = {10,2,0,14,43,25,18,1,5,45}; cout <<'Input list ...
'; for(i = 0; i<10; i++) { cout < Produzione:
Elenco di input ...
10 2 0 14 43 25 18 1 5 45
Elenco elementi ordinati ...
0 1 2 5 10 14 18 25 43 45
Numero di passaggi effettuati per ordinare l'elenco: 10
Esempio Java
class Main { public static void main(String[] args) { int pass = 0; int[] a = {10,-2,0,14,43,25,18,1,5,45}; System.out.println('Input List...'); for(int i=0;i<10;i++) { System.out.print(a[i] + ' '); } for(int i=0;i<10;i++) { for (int j=0;j<10;j++) { if(a[i] Produzione:
In entrambi i programmi, abbiamo utilizzato un array di 10 elementi e lo ordiniamo utilizzando la tecnica del bubble sort. In entrambi i programmi, abbiamo usato due cicli for per iterare attraverso gli elementi adiacenti dell'array.
Alla fine di ogni passaggio (loop esterno), l'elemento più grande dell'array viene ribollito fino alla fine dell'array. Contiamo anche il numero di passaggi necessari per ordinare l'intero array.
Analisi della complessità dell'algoritmo di ordinamento delle bolle
Dallo pseudo codice e dall'illustrazione che abbiamo visto sopra, nel bubble sort, facciamo confronti N-1 nel primo passaggio, confronti N-2 nel secondo passaggio e così via.
Quindi il numero totale di confronti nel Bubble sort è:
I = (n-1) + (n-2) + (n-3) + ... + 3 + 2 + 1
= N (N-1) / 2
= O (nDue) => Complessità temporale della tecnica di Bubble Sort
Quindi le varie complessità per la tecnica di Bubble Sort sono riportate di seguito:
Complessità temporale nel caso peggiore O (n 2) Migliore complessità temporale del caso Su) Complessità temporale media O (n 2) Complessità spaziale O (1)
La tecnica del bubble sort richiede solo un singolo spazio di memoria aggiuntivo per la variabile temp per facilitare lo scambio. Quindi la complessità dello spazio per l'algoritmo di ordinamento delle bolle è O (1).
Si noti che la migliore complessità temporale per la tecnica di Bubble sort sarà quando l'elenco è già ordinato e sarà O (n).
Conclusione
Il vantaggio principale di Bubble Sort è la semplicità dell'algoritmo. In Bubble sort, ad ogni passaggio, l'elemento più grande bolle fino alla fine dell'elenco se la matrice è ordinata in ordine crescente.
Allo stesso modo, affinché l'elenco venga ordinato in ordine decrescente, l'elemento più piccolo si troverà nella posizione corretta alla fine di ogni passaggio.
come aprire un file bin su pc
Essendo la tecnica di ordinamento più semplice e facile da implementare, il Bubble sort viene solitamente utilizzato per introdurre lo smistamento al pubblico. In secondo luogo, il bubble sort viene utilizzato anche in applicazioni come la computer grafica in cui il riempimento dei bordi del poligono, ecc. Richiede il bubble sort per ordinare i vertici che rivestono il poligono.
Nel nostro prossimo tutorial, impareremo in dettaglio l'ordinamento della selezione.
=> Visita qui per imparare C ++ da zero.
Lettura consigliata
- Ordinamento della shell in C ++ con esempi
- Ordinamento di selezione in C ++ con esempi
- Metodo MongoDB Sort () con esempi
- Comando di ordinamento Unix con sintassi, opzioni ed esempi
- Ordinamento di inserzione in C ++ con esempi
- Unisci ordinamento in C ++ con esempi
- Ordinamento heap in C ++ con esempi
- Ordinamento rapido in C ++ con esempi