fueanta

Implementation of bubble sorting algorithm

Oct 6th, 2016
129
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // implementation of bubble sorting algorithm
  2. // @author: fueanta
  3. // Date: Fri 7, Oct 2016
  4.  
  5. #include "cstdio"
  6.  
  7. template <typename T>
  8. void interchange(T &, T &);
  9.  
  10. void asc(double*, int);
  11. void desc(double*, int);
  12.  
  13. int main() {
  14.     int sizeu; printf("Size of the array please: "); scanf("%d", &sizeu);
  15.     double arr[sizeu];
  16.     printf("\nNow, give the elements of the array:\n");
  17.     for (int i= 0; i < sizeu; i++) {
  18.         printf("\nElement at index no[%d]: ", i);
  19.         scanf("%lf", &arr[i]);
  20.     }
  21.     printf("\n\nArray in ascending order.....\n");
  22.     asc(arr, sizeu);
  23.     for (int i = 0; i < sizeu ;i++) {
  24.         printf("\nElement at index no[%d]: |%.2lf|\n", i, arr[i]);
  25.     }
  26.     printf("\n\nArray in descending order.....\n");
  27.     desc(arr, sizeu);
  28.     for (int i = 0; i < sizeu ;i++) {
  29.         printf("\nElement at index no[%d]: |%.2lf|\n", i, arr[i]);
  30.     }
  31.     return 0;
  32. }
  33.  
  34. template <typename T>
  35. void interchange(T &x, T &y) {
  36.     T temp = x;
  37.     x = y;
  38.     y = temp;
  39. }
  40.  
  41. void asc(double arr[], int n) {
  42.     for (int i = 0; i < n-1 ; i++) {
  43.         bool flag = false;
  44.         for (int j = 0; j < n-1 ; j++) {
  45.             if (arr[j] > arr[j+1]) {
  46.                 interchange(arr[j], arr[j+1]);
  47.                 flag = true;
  48.             }
  49.         }
  50.         if (flag == false)
  51.             break;
  52.     }
  53. }
  54.  
  55. void desc(double arr[], int n) {
  56.     for (int i = 0; i < n-1 ; i++) {
  57.         bool flag = false;
  58.         for (int j = 0; j < n-1 ; j++) {
  59.             if (arr[j] < arr[j+1]) {
  60.                 interchange(arr[j], arr[j+1]);
  61.                 flag = true;
  62.             }
  63.         }
  64.         if (flag == false)
  65.             break;
  66.     }
  67. }
RAW Paste Data