Bubble sort is een van de eenvoudigste sorteeralgoritmen die door de gegeven array loopt en aangrenzende elementen vergelijkt. Als de elementen in de verkeerde volgorde staan, worden ze verwisseld om ze in de juiste volgorde te brengen. Dit proces gaat door totdat de hele array is gesorteerd.
Algoritme:
Stap 1:Herhaal de array meerdere keren
Vergelijk in elke iteratie aangrenzende elementen (i en i + 1)
Stap 2:Als het huidige element (i) groter is dan het volgende element (i + 1), verwissel ze dan
Herhaal dit proces totdat de hele array is gesorteerd
Tijdcomplexiteit:
O(n^2), omdat het meerdere keren door de array itereert en in elke iteratie vergelijkingen en swaps uitvoert.
Codevoorbeeld in Python:
def bubble_sort(arr):
voor ik binnen bereik(len(arr) - 1):
# Herhaal de array om aangrenzende elementen te vergelijken
voor j binnen bereik(len(arr) - 1 - i):
# Vergelijk het huidige element met het volgende element
als arr[j]> arr[j + 1]:
# Verwissel de elementen als ze in de verkeerde volgorde staan
arr[j], arr[j + 1] =arr[j + 1], arr[j]
# Retourneer de gesorteerde array
retour arr
Voorbeeld:
Invoer:
[5, 3, 1, 2, 4]
Uitgang:
[1, 2, 3, 4, 5]
Het bellensorteringsalgoritme itereert door de array en vergelijkt aangrenzende elementen. Als ze in de verkeerde volgorde staan, worden ze omgewisseld. Dit proces wordt herhaald totdat de hele array is gesorteerd.
Zo werkt het algoritme in dit voorbeeld:
Iteratie 1:
- Vergelijk 5 en 3:verwissel ze omdat 5 groter is dan 3.
- Vergelijk 3 en 1:verwissel ze omdat 3 groter is dan 1.
- Vergelijk 2 en 4:Geen omwisseling nodig omdat ze in de juiste volgorde staan.
- Array wordt:[3, 1, 2, 4, 5].
Iteratie 2:
- Vergelijk 3 en 1:verwissel ze omdat 3 groter is dan 1.
- Vergelijk 1 en 2:Geen omwisseling nodig omdat ze in de juiste volgorde staan.
- Vergelijk 2 en 4:Geen omwisseling nodig omdat ze in de juiste volgorde staan.
- Array wordt:[1, 2, 3, 4, 5].
Iteratie 3:
- Vergelijk 1 en 2:Geen omwisseling nodig omdat ze in de juiste volgorde staan.
- Vergelijk 2 en 3:Geen omwisseling nodig omdat ze in de juiste volgorde staan.
- Vergelijk 3 en 4:Geen omwisseling nodig omdat ze in de juiste volgorde staan.
- Array wordt:[1, 2, 3, 4, 5].
Iteratie 4:
- Vergelijk 1 en 2:Geen omwisseling nodig omdat ze in de juiste volgorde staan.
- Vergelijk 2 en 3:Geen omwisseling nodig omdat ze in de juiste volgorde staan.
- Vergelijk 3 en 4:Geen omwisseling nodig omdat ze in de juiste volgorde staan.
- Array blijft ongewijzigd.
Na de vierde iteratie wordt de array in oplopende volgorde gesorteerd:[1, 2, 3, 4, 5]. |