article

Bubblesort is een sorteeralgoritme, een algoritme om gegevens te sorteren. Het wordt vaak gebruikt als illustratie van een algoritme. Voor echte toepassing in programma's bestaan veel betere methoden en is bubblesort beslist af te raden.

Werking


Bubblesort werkt als volgt:

  • 1. Loop door de te sorteren rij van n elementen en vergelijk elk element met het volgende. Verwissel beide als ze in de verkeerde volgorde staan. Schuif dan een stapje op.
  • 2. Loop opnieuw door de rij, maar ga nu door tot het voorlaatste element, omdat het laatste element het grootste in de rij was.
  • 3. Nog een keer, maar negeer dan de twee laatste elementen.
  • 4. Ga zo door.
  • n. Nog een keer, maar negeer dan de laatste n-1 getallen.
  • n+1. Klaar.

We zien de grotere elementen als het ware als luchtbellen naar boven drijven. Aan deze metafoor ontleend het algoritme zijn naam.

Bubblesort is, met een grootteorde \mathcal{O}(n^2), vrij inefficiënt.

Als je voor elke keer dat je door de lijst loopt bijhoudt hoeveel verwisselingen worden gemaakt, is het mogelijk om vroegtijdig te stoppen zodra er geen verwisselingen meer nodig zijn. Dit kan in praktische zin een verbetering opleveren ten opzichte van de theoretische looptijd van het bubblesortalgoritme.

Implementaties


Implementatie in Visual Basic 6

Private Sub Form_Click() Dim i As Integer Dim v As Boolean Dim j as integer Dim temp as integer Dim arr(4) As Integer arr(1) = 31 arr(2) = 2252 arr(3) = 12 arr(4) = 41 i = 1 v = True Do While i < 4 And v = True v = False j = 1 Do While j <= 4 - i If arr(j) > arr(j + 1) Then temp = arr(j) arr(j) = arr(j + 1) arr(j + 1) = temp v = True End If j = j + 1 Loop i = i + 1 Loop Me.Cls For i = 1 To 4 Print arr(i) Next i End Sub

Implementatie in PHP

> $Arr[$j + 1) { $Temp = $Arr*; $Arr= $Arr[$j + 1; $Arr+ 1 = $Temp; $v = true; } } $i++; } print_r ($Arr); ?>

Implementatie in Java

public intbubbleSort(int[ list) { int temp; for (int position = list.length - 1; position >= 0; position--) { for (int scan = 0; scan <= position - 1; scan++) { if (list> list[scan + 1) { temp = list*; list= list[scan + 1; list+ 1 = temp; } } } return list; }

Implementatie in C

"Invoer" is de te sorteren array, "lengte" is het aantal elementen in de array.

void bubblesort(int invoer*,int lengte){ int i,j,tijdelijk; for(j=0;j*>invoer*){ tijdelijk=invoer*; invoer*=invoer*; invoer*=tijdelijk; } } } }

Zie ook


Sorteeralgoritme

ترتيب الفقاعات | Bubblesort | Bubble sort | Ordenamiento de burbuja | Kuplalajittelu | Tri à bulles | מיון בועות | Buborékrendezés | Bóluröðun | Bubble sort | バブルソート | Burbulo rūšiavimo algoritmas | Sortowanie bąbelkowe | Bubble sort | Сортировка пузырьком | Bublinkové triedenie | Bubble sort | Сортування стандартним обміном | 冒泡排序

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Bubblesort".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld