bubble sort c with examples
Tècnica de classificació de bombolles a C ++.
Bubble Sort és la tècnica d’ordenació més senzilla.
A la tècnica d'ordenació de bombolles, es compara cadascun dels elements de la llista amb el seu element adjacent. Per tant, si hi ha n elements a la llista A, llavors A [0] es compara amb A [1], A [1] es compara amb A [2], etc.
Després de comparar si el primer element és més gran que el segon, es canvien els dos elements.
=> Visiteu aquí el curs complet C ++ d’experts.
Què aprendreu:
com obrir fitxers swf a Windows
- Tècnica de classificació de bombolles
- Il·lustració
- Exemple C ++
- Exemple de Java
- Anàlisi de complexitat de l'algorisme de classificació de bombolles
- Conclusió
- Lectura recomanada
Tècnica de classificació de bombolles
Mitjançant la tècnica de classificació de bombolles, l’ordenació es fa en passades o iteracions. Així, al final de cada iteració, l'element més pesat es col·loca al lloc adequat de la llista. Dit d’una altra manera, l’element més gran de la llista es dispara.
A continuació hem donat un algorisme general de la tècnica de classificació de bombolles.
Algorisme general
Pas 1 : Per a i = 0 a N-1, repetiu el pas 2
Pas 2 : Per a J = i + 1 a N - repeteixo
Pas 3 : si A [J]> A [i]
Intercanvia A [J] i A [i]
[Fi del bucle interior per al bucle]
[Finalitza si exterior per a bucle]
Pas 4 : Sortiu
Aquí hi ha un pseudocodi per a l’algorisme de classificació de bombolles, on recorrem la llista mitjançant dos bucles iteratius.
Al primer bucle, comencem des del 0thelement i en el següent bucle, partim d’un element adjacent. Al cos del bucle intern, comparem cadascun dels elements adjacents i els intercanviem si no estan en ordre. Al final de cada iteració del bucle exterior, l'element més pesat es bombolla al final.
Pseudocodi
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
L'esmentat anteriorment és el pseudocodi per a la tècnica de classificació de bombolles. Ara il·lustrem aquesta tècnica mitjançant una il·lustració detallada.
Il·lustració
Prenem una matriu de mida 5 i il·lustrem l'algorisme de classificació de bombolles.
Matriu totalment ordenada.
La il·lustració anterior es pot resumir en una forma tabular com es mostra a continuació:
Passar | Llista no classificada | comparació | Llista ordenada |
---|---|---|---|
{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} | |
2 | {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} | ORDENAT |
Com es mostra a la il·lustració, amb cada passada, l'element més gran es bombolla fins a l'últim, ordenant així la llista amb cada passada. Com es va esmentar a la introducció, cada element es compara amb el seu element adjacent i es canvia entre si no estan en ordre.
Així, tal com es mostra a la il·lustració anterior, al final de la primera passada, si es vol ordenar la matriu en ordre ascendent, l'element més gran es col·loca al final de la llista. Per a la segona passada, el segon element més gran es col·loca a la segona última posició de la llista, etc.
Quan arribem a N-1 (on N és el nombre total d'elements de la llista) passa, tindrem tota la llista ordenada.
quin programa obre un fitxer eps
La tècnica de classificació de bombolles es pot implementar en qualsevol llenguatge de programació. A continuació, hem implementat l'algorisme de classificació de bombolles amb llenguatge C ++ i Java.
Exemple C ++
Vegem un exemple de programació per demostrar el tipus de bombolla.
#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 < Sortida:
Llista d'entrada ...
10 2 0 14 43 25 18 5 gen 45
Llista d'elements ordenats ...
0 1 2 5 10 14 18 25 43 45
Nombre de passades realitzades per ordenar la llista: 10
Exemple de 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] Sortida:

En els dos programes, hem utilitzat una matriu de 10 elements i l’ordenem mitjançant la tècnica de classificació de bombolles. En ambdós programes, n’hem utilitzat dos per a bucles per recórrer els elements adjacents de la matriu.
Al final de cada passada (bucle exterior), l'element més gran de la matriu es bombolla fins al final de la matriu. També comptem el nombre de passades necessàries per ordenar tota la matriu.
Anàlisi de complexitat de l'algorisme de classificació de bombolles
A partir del pseudocodi i de la il·lustració que hem vist anteriorment, en ordre de bombolles, fem comparacions N-1 a la primera passada, comparacions N-2 a la segona passada, etc.
Per tant, el nombre total de comparacions en el tipus de bombolla és:
I = (n-1) + (n-2) + (n-3) + ... + 3 + 2 + 1
= N (N-1) / 2
= O (n2) => Complexitat temporal de la tècnica de classificació de bombolles
Per tant, les diverses complexitats de la tècnica de classificació de bombolles es donen a continuació:
La pitjor complexitat temporal del cas O (n 2) Complexitat en el millor dels casos O (n) Complexitat temporal mitjana O (n 2) Complexitat espacial O (1)
La tècnica de classificació de bombolles requereix només un espai de memòria addicional per a la variable temp per facilitar l'intercanvi. Per tant, la complexitat de l’espai per a l’algorisme de classificació de bombolles és O (1).
Tingueu en compte que la complexitat del millor cas per a la tècnica de classificació de bombolles serà quan la llista ja està ordenada i serà O (n).
Conclusió
El principal avantatge de Bubble Sort és la simplicitat de l'algorisme. En l'ordenació de bombolles, amb cada passada, l'element més gran apareix fins al final de la llista si la matriu està ordenada en ordre ascendent.
De la mateixa manera, per ordenar la llista en ordre descendent, l'element més petit estarà al lloc adequat al final de cada passada.
Com que és la tècnica d’ordenació més senzilla i fàcil d’implementar, l’ordenació de bombolles se sol prendre per introduir l’ordenació al públic. En segon lloc, l'ordenació de bombolles també s'utilitza en aplicacions com ara gràfics per ordinador en què l'emplenament de vores de polígons, etc. requereixen una classificació de bombolles per ordenar els vèrtexs que recobreixen el polígon.
Al nostre proper tutorial, coneixerem detalladament l’Ordre de selecció.
=> Visiteu aquí per aprendre C ++ des de zero.
quin és el millor netejador de PC gratuït
Lectura recomanada
- Ordenació de shell en C ++ amb exemples
- Selecció Ordena en C ++ amb exemples
- MongoDB Sort () Mètode amb exemples
- Ordre d'ordenació Unix amb sintaxi, opcions i exemples
- Ordre d'inserció a C ++ amb exemples
- Combina l’ordenació en C ++ amb exemples
- Ordena en pila en C ++ amb exemples
- Ordena ràpidament en C ++ amb exemples