buborékrendezés
Ha egy iteráció során nem történt csere, a tömb már rendezett, és az algoritmus befejezhető.
BubbleSort(A): n = A hossza ciklus i = 0-tól n-1-ig: ciklus j = 0-tól n-i-2-ig: ha A > A: cseréljük meg A és A értékét
BubbleSortOptimized(A): n = A hossza ciklus i = 0-tól n-1-ig: swapped = hamis ciklus j = 0-tól n-i-2-ig: ha A > A: cseréljük meg A és A értékét swapped = igaz ha swapped = hamis: törés
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n - i - 1):
if arr > arr:
arr, arr = arr, arr
# Példa
data =
bubble_sort(data)
print("Rendezett tömb:", data)
# Kimenet: Rendezett tömb:
def bubble_sort_optimized(arr):
n = len(arr)
for i in range(n):
swapped = False
for j in range(0, n - i - 1):
if arr > arr:
arr, arr = arr, arr
swapped = True
if not swapped:
break
# Példa
data =
bubble_sort_optimized(data)
print("Rendezett tömb:", data)
# Kimenet: Rendezett tömb:
#include <iostream>
#include <vector>
using namespace std;
void bubbleSort(vector<int>& arr) {
int n = arr.size();
for (int i = 0; i < n - 1; ++i) {
for (int j = 0; j < n - i - 1; ++j) {
if (arr > arr) {
swap(arr, arr);
}
}
}
}
int main() {
vector<int> data = {64, 34, 25, 12, 22, 11, 90};
bubbleSort(data);
cout << "Rendezett tömb: ";
for (int num : data) {
cout << num << " ";
}
cout << endl;
return 0;
}
#include <iostream>
#include <vector>
using namespace std;
void bubbleSortOptimized(vector<int>& arr) {
int n = arr.size();
for (int i = 0; i < n - 1; ++i) {
bool swapped = false;
for (int j = 0; j < n - i - 1; ++j) {
if (arr > arr) {
swap(arr, arr);
swapped = true;
}
}
if (!swapped) {
break;
}
}
}
int main() {
vector<int> data = {64, 34, 25, 12, 22, 11, 90};
bubbleSortOptimized(data);
cout << "Rendezett tömb: ";
for (int num : data) {
cout << num << " ";
}
cout << endl;
return 0;
}
A buborékrendezés könnyen érthető és implementálható, de nagyobb adathalmazok esetén nem hatékony, mivel az időkomplexitása (O(n^2)). Az optimalizált változat azonban felismeri, ha a lista már rendezett, és időt takarít meg. Ez az algoritmus elsősorban oktatási célokra alkalmas.