logo

Algoritme d'ordenació de bombolles

En aquest article, parlarem de l'algoritme d'ordenació de bombolles. El procediment de treball de la classificació de bombolles és el més senzill. Aquest article serà molt útil i interessant per als estudiants, ja que podrien enfrontar-se a l'ordenació de bombolles com a pregunta als seus exàmens. Per tant, és important parlar del tema.

quantes pel·lícules de missió impossible hi ha

L'ordenació de bombolles funciona en l'intercanvi repetit d'elements adjacents fins que no estiguin en l'ordre previst. S'anomena classificació de bombolles perquè el moviment dels elements de la matriu és com el moviment de les bombolles d'aire a l'aigua. Les bombolles a l'aigua pugen a la superfície; de la mateixa manera, els elements de la matriu de l'ordenació de bombolles es mouen fins al final de cada iteració.

Tot i que és senzill d'utilitzar, s'utilitza principalment com a eina educativa perquè el rendiment de la classificació de bombolles és pobre al món real. No és adequat per a grans conjunts de dades. La complexitat mitjana i del pitjor dels casos de l'ordenació de bombolles és O (n2), on n és una sèrie d'elements.

La bombolla curta s'utilitza principalment quan -

  • la complexitat no importa
  • senzill i el codi curt és preferible

Algorisme

En l'algorisme que es mostra a continuació, suposem arr és una matriu de n elements. El suposat intercanviar La funció de l'algorisme intercanviarà els valors dels elements de la matriu donats.

 begin BubbleSort(arr) for all array elements if arr[i] > arr[i+1] swap(arr[i], arr[i+1]) end if end for return arr end BubbleSort 

Funcionament de l'algoritme d'ordenació de bombolles

Ara, vegem el funcionament de l'algoritme d'ordenació de bombolles.

Per entendre el funcionament de l'algorisme d'ordenació de bombolles, prenem una matriu sense ordenar. Estem prenent una matriu breu i precisa, ja que sabem la complexitat de l'ordenació de bombolles O (n2).

Siguin els elements de la matriu -

Algoritme d'ordenació de bombolles

Primera passada

L'ordenació començarà des dels dos elements inicials. Compareu-los per comprovar quin és més gran.

Algoritme d'ordenació de bombolles

Aquí, 32 és més gran que 13 (32 > 13), de manera que ja està ordenat. Ara, compareu 32 amb 26.

Algoritme d'ordenació de bombolles

Aquí, 26 és més petit que 36. Per tant, cal canviar-lo. Després d'intercanviar la nova matriu, es veurà com -

Algoritme d'ordenació de bombolles

Ara, compareu 32 i 35.

Algoritme d'ordenació de bombolles

Aquí, 35 és més gran que 32. Per tant, no cal canviar-los perquè ja estan ordenats.

Ara, la comparació estarà entre 35 i 10.

Algorisme d'ordenació de bombolles

Aquí, 10 és més petit que 35 que no estan ordenats. Per tant, cal canviar. Ara, arribem al final de la matriu. Després de la primera passada, la matriu serà -

Algoritme d'ordenació de bombolles

Ara, passeu a la segona iteració.

Segona passada

Es seguirà el mateix procés per a la segona iteració.

Algoritme d'ordenació de bombolles

Aquí, 10 és més petit que 32. Per tant, cal canviar. Després de canviar, la matriu serà -

Algorisme d'ordenació de bombolles

Ara, passeu a la tercera iteració.

Tercera passada

Es seguirà el mateix procés per a la tercera iteració.

Algoritme d'ordenació de bombolles

Aquí, 10 és més petit que 26. Per tant, cal canviar. Després de canviar, la matriu serà -

Algoritme d'ordenació de bombolles

Ara, passeu a la quarta iteració.

Quarta passada

De la mateixa manera, després de la quarta iteració, la matriu serà -

comunicació analògica
Algorisme d'ordenació de bombolles

Per tant, no cal intercanviar, de manera que la matriu està completament ordenada.

Complexitat de classificació de bombolles

Ara, vegem la complexitat temporal de l'ordenació de bombolles en el millor dels casos, el cas mitjà i el pitjor dels casos. També veurem la complexitat espacial de la classificació de bombolles.

1. Complexitat temporal

Caixa Complexitat temporal
Millor cas O(n)
Cas mitjà O (n2)
Pitjor dels casos O (n2)
    Complexitat del millor cas -Es produeix quan no cal ordenar, és a dir, la matriu ja està ordenada. El millor dels casos és la complexitat temporal de l'ordenació de bombolles O(n). Complexitat mitjana de casos -Es produeix quan els elements de la matriu estan en ordre desordenat que no és correctament ascendent i no descendent correctament. La complexitat mitjana del temps de cas de l'ordenació de bombolles és O (n2). Complexitat del pitjor cas -Es produeix quan els elements de la matriu s'han d'ordenar en ordre invers. Això vol dir que suposem que heu d'ordenar els elements de la matriu en ordre ascendent, però els seus elements estan en ordre descendent. La complexitat temporal del pitjor dels casos de l'ordenació de bombolles és O (n2).

2. Complexitat espacial

Complexitat espacial O(1)
Estable
  • La complexitat espacial de l'ordenació de bombolles és O(1). És perquè, en l'ordenació de bombolles, es requereix una variable addicional per intercanviar.
  • La complexitat espacial de l'ordenació de bombolles optimitzada és O (2). És perquè es requereixen dues variables addicionals en l'ordenació de bombolles optimitzada.

Ara, parlem de l'algorisme optimitzat d'ordenació de bombolles.

Algoritme d'ordenació de bombolles optimitzat

A l'algorisme d'ordenació de bombolles, les comparacions es fan fins i tot quan la matriu ja està ordenada. Per això, el temps d'execució augmenta.

Per resoldre'l, podem utilitzar una variable addicional intercanviat. Està configurat a veritat si l'intercanvi requereix; en cas contrari, s'estableix a fals.

Serà útil, com suposem després d'una iteració, si no cal canviar el valor de la variable intercanviat serà fals. Significa que els elements ja estan ordenats i no calen més iteracions.

Aquest mètode reduirà el temps d'execució i també optimitzarà l'ordenació de bombolles.

Algorisme per a una classificació optimitzada de bombolles

 bubbleSort(array) n = length(array) repeat swapped = false for i = 1 to n - 1 if array[i - 1] > array[i], then swap(array[i - 1], array[i]) swapped = true end if end for n = n - 1 until not swapped end bubbleSort 

Implementació de Bubble sort

Ara, anem a veure els programes de Bubble sort en diferents llenguatges de programació.

ipconfig per a ubuntu

Programa: Escriu un programa per implementar l'ordenació de bombolles en llenguatge C.

 #include void print(int a[], int n) //function to print array elements { int i; for(i = 0; i <n; i++) { printf('%d ',a[i]); } void bubble(int a[], int n) function to implement bubble sort i, j, temp; for(i="0;" i < n; for(j="i+1;" j j++) if(a[j] a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" main () j,temp; a[5]="{" 10, 35, 32, 13, 26}; n="sizeof(a)/sizeof(a[0]);" printf('before sorting array elements are - 
'); print(a, n); bubble(a, printf('
after pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/ds-tutorial/52/bubble-sort-algorithm-13.webp" alt="Bubble sort Algorithm"> <p> <strong>Program:</strong> Write a program to implement bubble sort in C++ language.</p> <pre> #include using namespace std; void print(int a[], int n) //function to print array elements { int i; for(i = 0; i <n; i++) { cout< <a[i]<<' '; } void bubble(int a[], int n) function to implement bubble sort i, j, temp; for(i="0;" i < n; for(j="i+1;" j j++) if(a[j] a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" main() j,temp; a[5]="{45," 1, 32, 13, 26}; n="sizeof(a)/sizeof(a[0]);" cout<<'before sorting array elements are - 
'; print(a, n); bubble(a, cout<<'
after return 0; pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/ds-tutorial/52/bubble-sort-algorithm-14.webp" alt="Bubble sort Algorithm"> <p> <strong>Program:</strong> Write a program to implement bubble sort in C# language.</p> <pre> using System; public class Bubble { static void print (int[]a) //function to print array elements { int n = a.Length; int i; for (i = 0; i <n; 26 i++) { console.write (' ' + a[i]); } static void bubble (int[]a) function to implement sort int n="a.Length;" i, j, temp; for (i="0;" i < n; (j="i" 1; j j++) if (a[j] a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" public main () int[] a="{" 45, 1, 32, 13, }; ('
 before sorting array elements are - 
'); print (a); console.writeline (); after pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/ds-tutorial/52/bubble-sort-algorithm-15.webp" alt="Bubble sort Algorithm"> <p> <strong>Program:</strong> Write a program to implement bubble sort in Java.</p> <pre> public class Bubble { static void print (int a[]) //function to print array elements { int n = a.length; int i; for (i = 0; i <n; i++) { system.out.print(a[i] + ' '); } static void bubblesort (int a[]) function to implement bubble sort int n="a.length;" i, j, temp; for (i="0;" i < n; (j="i" 1; j j++) if (a[j] a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" public main(string[] args) a[]="{35," 10, 31, 11, 26}; b1="new" bubble(); system.out.println('before sorting array elements are - b1.print(a); b1.bubblesort(a); system.out.println(); system.out.println('after pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/ds-tutorial/52/bubble-sort-algorithm-16.webp" alt="Bubble sort Algorithm"> <p> <strong>Program:</strong> Write a program to implement bubble sort in JavaScript.</p> <pre> var a = [35, 10, 31, 11, 26]; function print() //function to print array elements { for(i = 0; i <5; i++) { document.writeln(a[i]); } document.write('before sorting array elements are - ' + <br>&apos;); print(); for(i = 0; i <5; i++) { for (j="0;" j < 5; j++) if(a[i] a[j]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } document.write(' <br> After sorting array elements are - &apos; + &apos; <br>&apos;); print(); </5;></5;></pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/ds-tutorial/52/bubble-sort-algorithm-17.webp" alt="Bubble sort Algorithm"> <p> <strong>Program:</strong> Write a program to implement bubble sort in PHP.</p> <pre> <?php $a = array(2, 45, 88, 11, 5); function printArray($a) { for($i = 0; $i < 5; $i++) { print_r($a[$i]); echo ' '; } } echo 'Before sorting array elements are - <br>&apos;; printArray($a); for($i = 0; $i <5; $i++) { for ($j="0;" $j < 5; $j++) if($a[$i] $a[$j]) $temp="$a[$i];" $a[$i]="$a[$j];" $a[$j]="$temp;" } echo ' <br> After sorting array elements are - <br>&apos;; printArray($a); ?&gt; </5;></pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/ds-tutorial/52/bubble-sort-algorithm-18.webp" alt="Bubble sort Algorithm"> <p> <strong>Program:</strong> Write a program to implement bubble sort in python.</p> <pre> a = [35, 10, 31, 11, 26] print(&apos;Before sorting array elements are - &apos;) for i in a: print(i, end = &apos; &apos;) for i in range(0,len(a)): for j in range(i+1,len(a)): if a[j] <a[i]: temp="a[j]" a[j]="a[i]" a[i]="temp" print('
after sorting array elements are - ') for i in a: print(i, end=" " ) < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/ds-tutorial/52/bubble-sort-algorithm-19.webp" alt="Bubble sort Algorithm"> <p>So, that&apos;s all about the article. Hope the article will be helpful and informative to you.</p> <p>This article was not only limited to the algorithm. We have also discussed the algorithm&apos;s complexity, working, optimized form, and implementation in different programming languages.</p> <hr></a[i]:></pre></n;></pre></n;></pre></n;></pre></n;>

Sortida

Algoritme d'ordenació de bombolles

Programa: Escriu un programa per implementar l'ordenació de bombolles en PHP.

 <?php $a = array(2, 45, 88, 11, 5); function printArray($a) { for($i = 0; $i < 5; $i++) { print_r($a[$i]); echo \' \'; } } echo \'Before sorting array elements are - <br>&apos;; printArray($a); for($i = 0; $i <5; $i++) { for ($j="0;" $j < 5; $j++) if($a[$i] $a[$j]) $temp="$a[$i];" $a[$i]="$a[$j];" $a[$j]="$temp;" } echo \' <br> After sorting array elements are - <br>&apos;; printArray($a); ?&gt; </5;>

Sortida

Algoritme d'ordenació de bombolles

Programa: Escriu un programa per implementar l'ordenació de bombolles a Python.

 a = [35, 10, 31, 11, 26] print(&apos;Before sorting array elements are - &apos;) for i in a: print(i, end = &apos; &apos;) for i in range(0,len(a)): for j in range(i+1,len(a)): if a[j] <a[i]: temp="a[j]" a[j]="a[i]" a[i]="temp" print(\'
after sorting array elements are - \') for i in a: print(i, end=" " ) < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/ds-tutorial/52/bubble-sort-algorithm-19.webp" alt="Bubble sort Algorithm"> <p>So, that&apos;s all about the article. Hope the article will be helpful and informative to you.</p> <p>This article was not only limited to the algorithm. We have also discussed the algorithm&apos;s complexity, working, optimized form, and implementation in different programming languages.</p> <hr></a[i]:>