In: Computer Science
Write a program that uses two identical arrays of at least 25 integers. It should call a function that uses the bubble sort algorithm to sort one of the arrays in descending order. The function should keep a count of the number of exchanges it makes. The program then should call a function that uses the selection sort algorithm to sort the other array. It should also keep count of the number of exchanges it makes. Display these values on the screen.
/*
 *  C Language Program
 *  Count number of swaps in bubble sort and selectoin sort
 */
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define MAX 25
int bubbleSort(int array[], int count);
int selectionSort(int arr[], int N);
int main()
{
  int arrayFirst[MAX];
  int arraySecond[MAX];
  int bubbleSwap, selectionSwap;
  int i, temp;
  srand(time(NULL));
  for (i = 0; i < MAX; i++)
  {
    temp = rand() % 100;
    arrayFirst[i] = temp;
    arraySecond[i] = temp;
  }
  
  bubbleSwap = bubbleSort(arrayFirst, MAX);
  selectionSwap = selectionSort(arraySecond, MAX);
  printf("Total number of swaps in bubble sort: %d\n", bubbleSwap);
  printf("Total number of swaps in selection sort: %d\n", selectionSwap);
  return 0;
}
int bubbleSort(int arr[], int N)
{
  int i, j, temp;
  int swaps = 0;
  
  for (i = 0; i < N - 1; ++i)
  {
    for (j = 0; j < N - 1 - i; ++j)
    {
      if (arr[j] > arr[j+1])
      {
        temp = arr[j + 1];
        arr[j + 1] = arr[j];
        arr[j] = temp;
        swaps++;
      }
    }
  }
  return swaps;
}
int selectionSort(int arr[], int N)
{
   int i, j;
  int temp, min_indx;
  int swaps = 0;
   
   for(i = 0; i < N; i++)
   {
      min_indx = i;
      
      for(j = i+1; j < N; j++)
      {
         if(arr[min_indx] > arr[j])
            min_indx = j;
      }
      
    temp = arr[min_indx];
    arr[min_indx] = arr[i];
    arr[i] = temp;
      swaps++;
   }
  return swaps;
}
/*  Program ends here */

Note: No language was mentioned, hence the program is written in C, for change of language drop a comment.