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 -
Primera passada
L'ordenació començarà des dels dos elements inicials. Compareu-los per comprovar quin és més gran.
Aquí, 32 és més gran que 13 (32 > 13), de manera que ja està ordenat. Ara, compareu 32 amb 26.
Aquí, 26 és més petit que 36. Per tant, cal canviar-lo. Després d'intercanviar la nova matriu, es veurà com -
Ara, compareu 32 i 35.
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.
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à -
Ara, passeu a la segona iteració.
Segona passada
Es seguirà el mateix procés per a la segona iteració.
Aquí, 10 és més petit que 32. Per tant, cal canviar. Després de canviar, la matriu serà -
Ara, passeu a la tercera iteració.
Tercera passada
Es seguirà el mateix procés per a la tercera iteració.
Aquí, 10 és més petit que 26. Per tant, cal canviar. Després de canviar, la matriu serà -
Ara, passeu a la quarta iteració.
Quarta passada
De la mateixa manera, després de la quarta iteració, la matriu serà -
comunicació analògica
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) |
2. Complexitat espacial
Complexitat espacial | O(1) |
Estable | SÍ |
- 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>'); 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 - ' + ' <br>'); 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>'; 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>'; printArray($a); ?> </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('Before sorting array elements are - ') for i in a: print(i, end = ' ') 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'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's complexity, working, optimized form, and implementation in different programming languages.</p> <hr></a[i]:></pre></n;></pre></n;></pre></n;></pre></n;>
Sortida
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>'; 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>'; printArray($a); ?> </5;>
Sortida
Programa: Escriu un programa per implementar l'ordenació de bombolles a Python.
a = [35, 10, 31, 11, 26] print('Before sorting array elements are - ') for i in a: print(i, end = ' ') 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'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's complexity, working, optimized form, and implementation in different programming languages.</p> <hr></a[i]:>