-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathBubble_sort.ing.cpp
45 lines (36 loc) · 1.05 KB
/
Bubble_sort.ing.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
using namespace std;
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
// Track whether any swap occurred in this pass
bool swapped = false;
// Last i elements are already sorted, so we don't need to check them
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// Swap arr[j] and arr[j + 1]
swap(arr[j], arr[j + 1]);
swapped = true; // Set swapped to true since we made a swap
}
}
// If no elements were swapped in this pass, the array is already sorted
if (!swapped) {
break;
}
}
}
void printArray(int arr[], int n) {
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
int main() {
int arr[] = {5, 1, 4, 2, 8};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Original array: ";
printArray(arr, n);
bubbleSort(arr, n);
cout << "Sorted array: ";
printArray(arr, n);
return 0;
}