diff --git a/Competitive Coding/Sorting/Bubble Sort/bubble_sort.c b/Competitive Coding/Sorting/Bubble Sort/bubble_sort.c index 8f47b721f..af0f6d1e1 100644 --- a/Competitive Coding/Sorting/Bubble Sort/bubble_sort.c +++ b/Competitive Coding/Sorting/Bubble Sort/bubble_sort.c @@ -1,46 +1,67 @@ +#include <stdio.h> -// BUBBLE SORT +void swap (int array[], int j){ + int aux = 0; + aux = array[j]; + array[j] = array[j+1]; + array[j+1] = aux; +} -#include <stdio.h> +void bubbleSort(int array[], int size, int order){ + if(order == 1){ + for(int i=0; i < size-1; i++){ + int flag = 0; -void swap(int*,int*); - -void bubblesort(int arr[], int size) -{ - int i, j; - for (i = 0; i < size - 1; i++) // Function where the actual algorithm is implemented - { - for (j = 0; j < size - i - 1; j++) - { - if (arr[j] > arr[j+1]) - swap(&arr[j], &arr[j+1]); - + for(int j=0; j<size-1-i; j++){ + if(array[j] > array[j+1]){ + swap(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-1-i; j++){ + if(array[j] < array[j+1]){ + swap(array, j); + flag = 1; + } + } + if(flag == 0){ + break; + } + } + } } -void swap(int *a, int *b) -{ - int temp; // Function for swapping two variables - temp = *a; - *a = *b; - *b = temp; -} -int main() -{ - int array[100], i, size; - printf("How many numbers you want to sort: "); // Enter the numbers to sort - - scanf("%d", &size); - - printf("\nEnter %d numbers : ", size); - for (i = 0; i < size; i++) - scanf("%d", &array[i]); - bubblesort(array, size); - printf("\nSorted array is "); - - for (i = 0; i < size; i++) - printf(" %d ", array[i]); - printf(" "); - return 0; - +int main() { + int size; + int order; + + printf("Enter the size of the array:\n"); + scanf("%i", &size); + + int array[size]; + + printf("Enter the elements of the array:\n"); + for(int i = 0; i < size; i++){ + scanf("%i", &array[i]); + } + + printf("What type of ordering do you want: \n 1 - Ascending \n 2 - Descending\n"); + scanf("%i", &order); + + bubbleSort(array, size, order); + + printf("The sorted array is:\n"); + for (int i = 0; i < size; i++){ + printf("%i ", array[i]); + } + return 0; }