Bubblesortering är en av de enklaste sorteringsalgoritmerna som itererar genom den givna arrayen och jämför intilliggande element. Om elementen är i fel ordning byts de ut för att få dem i rätt ordning. Denna process fortsätter tills hela arrayen är sorterad.
Algoritm:
Steg 1:Iterera över arrayen flera gånger
I varje iteration, jämför intilliggande element (i och i + 1)
Steg 2:Om det aktuella elementet (i) är större än nästa element (i + 1), byt ut dem
Upprepa denna process tills hela arrayen är sorterad
Tidskomplexitet:
O(n^2), eftersom den itererar genom arrayen flera gånger och utför jämförelser och byten i varje iteration.
Kodexempel i Python:
def bubble_sort(arr):
för i inom intervallet(len(arr) - 1):
# Iterera genom arrayen för att jämföra intilliggande element
för j i intervall(len(arr) - 1 - i):
# Jämför det aktuella elementet med nästa element
om arr[j]> arr[j + 1]:
# Byt ut elementen om de är i fel ordning
arr[j], arr[j + 1] =arr[j + 1], arr[j]
# Returnera den sorterade arrayen
retur arr
Exempel:
Input:
[5, 3, 1, 2, 4]
Produktion:
[1, 2, 3, 4, 5]
Bubbelsorteringsalgoritmen itererar genom arrayen och jämför intilliggande element. Om de är i fel ordning byts de. Denna process upprepas tills hela arrayen är sorterad.
Så här fungerar algoritmen i det här exemplet:
Iteration 1:
- Jämför 5 och 3:Byt dem eftersom 5 är större än 3.
- Jämför 3 och 1:Byt dem eftersom 3 är större än 1.
- Jämför 2 och 4:Inget byte behövs eftersom de är i rätt ordning.
- Array blir:[3, 1, 2, 4, 5].
Iteration 2:
- Jämför 3 och 1:Byt dem eftersom 3 är större än 1.
- Jämför 1 och 2:Inget byte behövs eftersom de är i rätt ordning.
- Jämför 2 och 4:Inget byte behövs eftersom de är i rätt ordning.
- Array blir:[1, 2, 3, 4, 5].
Iteration 3:
- Jämför 1 och 2:Inget byte behövs eftersom de är i rätt ordning.
- Jämför 2 och 3:Inget byte behövs eftersom de är i rätt ordning.
- Jämför 3 och 4:Inget byte behövs eftersom de är i rätt ordning.
- Array blir:[1, 2, 3, 4, 5].
Iteration 4:
- Jämför 1 och 2:Inget byte behövs eftersom de är i rätt ordning.
- Jämför 2 och 3:Inget byte behövs eftersom de är i rätt ordning.
- Jämför 3 och 4:Inget byte behövs eftersom de är i rätt ordning.
- Array förblir oförändrad.
Efter den fjärde iterationen sorteras matrisen i stigande ordning:[1, 2, 3, 4, 5].