Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

first commit #367

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 51 additions & 61 deletions BubbleSort.cpp
Original file line number Diff line number Diff line change
@@ -1,69 +1,59 @@
/*
Bubble Sort is comparison based sorting algorithm. In this algorithm adjacent elements are compared and swapped to make correct sequence. This algorithm is simpler than other algorithms, but it has some drawbacks also. This algorithm is not suitable for large number of data set. It takes much time to solve the sorting tasks.
#include <iostream>
#include <vector>

The complexity of Bubble Sort Technique
Time Complexity: O(n) for best case, O(n2) for average and worst case
using namespace std;

Space Complexity: O(1)
void swapping(int &a, int &b) { // Swap the contents of a and b
int temp = a;
a = b;
b = temp;
}

Input − A list of unsorted data: 56 98 78 12 30 51
Output − Array after Sorting: 12 30 51 56 78 98
void display(const vector<int>& array) {
for (int value : array) {
cout << value << " ";
}
cout << endl;
}

Algorihtm:-
void bubbleSort(vector<int>& array) {
int n = array.size();
bool swapped;

Begin
for i := 0 to size-1 do
flag := 0;
for j:= 0 to size –i – 1 do
if array[j] > array[j+1] then
swap array[j] with array[j+1]
flag := 1
done
if flag ≠ 1 then
break the loop.
done
End
for (int i = 0; i < n - 1; i++) {
swapped = false;
int lastSwapIndex = n - 1; // Track the last swap index

Example Code:-
*/
#include<iostream>
using namespace std;
void swapping(int &a, int &b) { //swap the content of a and b
int temp;
temp = a;
a = b;
b = temp;
}
void display(int *array, int size) {
for(int i = 0; i<size; i++)
cout << array[i] << " ";
cout << endl;
}
void bubbleSort(int *array, int size) {
for(int i = 0; i<size; i++) {
int swaps = 0; //flag to detect any swap is there or not
for(int j = 0; j<size-i-1; j++) {
if(array[j] > array[j+1]) { //when the current item is bigger than next
swapping(array[j], array[j+1]);
swaps = 1; //set swap flag
}
}
if(!swaps)
break; // No swap in this pass, so array is sorted
}
for (int j = 0; j < lastSwapIndex; j++) {
if (array[j] > array[j + 1]) { // When the current item is bigger than the next
swapping(array[j], array[j + 1]);
swapped = true; // Set swap flag
lastSwapIndex = j; // Update last swap position
}
}

if (!swapped) {
break; // No swap in this pass, so array is sorted
}
}
}

int main() {
int n;
cout << "Enter the number of elements: ";
cin >> n;
int arr[n]; //create an array with given number of elements
cout << "Enter elements:" << endl;
for(int i = 0; i<n; i++) {
cin >> arr[i];
}
cout << "Array before Sorting: ";
display(arr, n);
bubbleSort(arr, n);
cout << "Array after Sorting: ";
display(arr, n);
} //above programme works fine don't need to do anything
int n;
cout << "Enter the number of elements: ";
cin >> n;

vector<int> arr(n); // Create a vector with the given number of elements
cout << "Enter elements:" << endl;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}

cout << "Array before Sorting: ";
display(arr);
bubbleSort(arr);
cout << "Array after Sorting: ";
display(arr);

return 0;
}