DAA - Kabarcık Sıralama
Bubble Sort, gerekirse bitişik öğeleri tekrar tekrar değiştirerek çalışan temel bir sıralama algoritmasıdır. Değişim gerekmediğinde, dosya sıralanır.
Bu, tüm sıralama algoritmaları arasında en basit tekniktir.
Algorithm: Sequential-Bubble-Sort (A)
fori← 1 to length [A] do
for j ← length [A] down-to i +1 do
if A[A] < A[j - 1] then
Exchange A[j] ↔ A[j-1]
Uygulama
voidbubbleSort(int numbers[], intarray_size) {
inti, j, temp;
for (i = (array_size - 1); i >= 0; i--)
for (j = 1; j <= i; j++)
if (numbers[j - 1] > numbers[j]) {
temp = numbers[j-1];
numbers[j - 1] = numbers[j];
numbers[j] = temp;
}
}
Analiz
Burada, karşılaştırma sayısı
1 + 2 + 3 +...+ (n - 1) = n(n - 1)/2 = O(n2)
Açıkça, grafik, n2 kabarcık türünün doğası.
Bu algoritmada, karşılaştırma sayısı veri setinden bağımsızdır, yani sağlanan giriş elemanlarının sıralı sırada mı yoksa ters sırada mı yoksa rastgele mi olduğu.
Bellek gereksinimi
Yukarıda belirtilen algoritmadan, balon sıralamanın fazladan bellek gerektirmediği açıktır.
Misal
Unsorted list: |
|
1 st yineleme:
5 > 2 swap |
|
|||||||
5 > 1 swap |
|
|||||||
5 > 4 swap |
|
|||||||
5 > 3 swap |
|
|||||||
5 < 7 no swap |
|
|||||||
7 > 6 swap |
|
2 nd yineleme:
2 > 1 swap |
|
|||||||
2 < 4 no swap |
|
|||||||
4 > 3 swap |
|
|||||||
4 < 5 no swap |
|
|||||||
5 < 6 no swap |
|
3'te herhangi bir değişiklik yoktur rd , 4 th , 5 inci ve 6 inci yineleme.
En sonunda,
the sorted list is |
|