diff --git a/Sorting/Bubble Sort/C++/Bubble_Sort_1.cpp b/Sorting/Bubble Sort/C++/Bubble_Sort_1.cpp index 4b5f2b41..8e5b1e4f 100644 --- a/Sorting/Bubble Sort/C++/Bubble_Sort_1.cpp +++ b/Sorting/Bubble Sort/C++/Bubble_Sort_1.cpp @@ -1,41 +1,65 @@ -// C program for implementation of Bubble sort -#include - -void swap(int *xp, int *yp) -{ - int temp = *xp; - *xp = *yp; - *yp = temp; -} - -// A function to implement bubble sort -void bubbleSort(int arr[], int n) -{ - int i, j; - for (i = 0; i < n-1; i++) - - // Last i elements are already in place - for (j = 0; j < n-i-1; j++) - if (arr[j] > arr[j+1]) - swap(&arr[j], &arr[j+1]); -} - -/* Function to print an array */ -void printArray(int arr[], int size) -{ - int i; - for (i=0; i < size; i++) - printf("%d ", arr[i]); - printf("n"); -} - -// Driver program to test above functions -int main() -{ - int arr[] = {64, 34, 25, 12, 22, 11, 90}; - int n = sizeof(arr)/sizeof(arr[0]); - bubbleSort(arr, n); - printf("Sorted array: \n"); - printArray(arr, n); - return 0; -} +#include +using namespace std; + +void bubbleSort(int array[], int size, int order){ + + if(order == 1){ + for(int i=0; i < size-1; i++){ + int flag = 0; + + for(int j=0; j array[j+1]){ + swap(array[j+1], array[j]); + flag = 1; + } + } + if(flag == 0){ + break; + } + } + } + + else if(order == 2){ + for(int i=0; i < size-1; i++){ + int flag = 0; + + for(int j=0; j> size; + + int array[size]; + + cout << "Enter the elements of the array:" << endl; + for(int i = 0; i < size; i++){ + cin >> array[i]; + } + + cout << "What type of ordering do you want: \n 1 - Ascending \n 2 - Descending" << endl; + cin >> order; + + bubbleSort(array, size, order); + + cout << "The sorted array is:" <