Question

In: Computer Science

The program is hard coded to only work with arrays of 10 numbers. Add a constant called size before main that is assigned the number of elements to be sorted.

#include#include/*
  Program sorts an array of integers using a selection sort.
  The general algorithm repeatedly finds the smallest number
  in the array and places it at the front of the list.
*/
using namespace std;

int find_small_index (int start_index, int numbers []);
void swap_values (int index1, int index2, int numbers []);

int main(int argc, char *argv[])
{
    // array of numbers
    int numbers [10] = {7, 9, 21, 16, 65, 8, 32, 1, 17, 41};
    int start_index;  // current starting spot for search
    int small_index;  // index of the smallest number in the array
    int index;        // index used for print the array values
    
    start_index = 0;
    // continue finding the smallest value and placing it
    // at the front of the list
    while (start_index < 9)
    {
          small_index = find_small_index (start_index, numbers);
          swap_values (small_index, start_index, numbers);
          start_index++;
    }
    
    cout << "\n\nThe sorted array is:\n";
    for (index = 0; index < 10; index++)
        cout << numbers [index] << " ";
    cout << "\n\n";
          
    return 0;
}
 
int find_small_index (int start_index, int numbers [])
{
    int small_index, // smallest index to be returned
        index;       // current index being viewed
    
    small_index = start_index;
    for (index = start_index + 1; index < 10; index++)
        if (numbers [index] < numbers [small_index])
           small_index = index;
    return small_index;
}
    
void swap_values (int index1, int index2, int numbers [])
{
     int swapper;
     
     swapper = numbers [index1];
     numbers [index1] = numbers [index2];
     numbers [index2] = swapper;
}

- The program is hard coded to only work with arrays of 10 numbers. Add a constant called size before main that is assigned the number of elements to be sorted. Use this size constant in the rest of the program so that the sort will work for any number of values. Run your program with size equal to 12 (add 2 more numbers to the array in its declaration list). -

- A simple change to the program will sort the numbers from largest to smallest. Change your program so that it does this. Do not print the sorted values in reverse order! Actually change the sort.

Solutions

Expert Solution

  • #include
  • #include
  • /*
  • Program sorts an array of integers using a selection sort.
  • The general algorithm repeatedly finds the smallest number
  • in the array and places it at the front of the list.
  • */
  • using namespace std;
  • int find_small_index (int start_index, int numbers [],int size);
  • void swap_values (int index1, int index2, int numbers []);
  • int main(int argc, char *argv[])
  • {
  • // array of numbers
  • int numbers [12] = {7, 9, 21, 16, 65, 8, 32, 1, 17, 41,23,37};
  • int start_index; // current starting spot for search
  • int small_index; // index of the smallest number in the array
  • int index; // index used for print the array values
  • int size=12;
  • start_index = 0;
  • // continue finding the smallest value and placing it
  • // at the front of the list
  • while (start_index < size)
  • {
  • small_index = find_small_index (start_index, numbers,size);
  • swap_values (small_index, start_index, numbers);
  • start_index++;
  • }
  •   
  • cout << "\n\nThe sorted array is:\n";
  • for (index = 0; index < size; index++)
  • cout << numbers [index] << " ";
  • cout << "\n\n";
  •   
  • return 0;
  • }
  • int find_small_index (int start_index, int numbers [],int size)
  • {
  • int small_index, // smallest index to be returned
  • index; // current index being viewed
  •   
  • small_index = start_index;
  • for (index = start_index + 1; index < size; index++)
  • if (numbers [index] > numbers [small_index])
  • small_index = index;
  • return small_index;
  • }
  •   
  • void swap_values (int index1, int index2, int numbers [])
  • {
  • int swapper;
  • swapper = numbers [index1];
  • numbers [index1] = numbers [index2];
  • numbers [index2] = swapper;
  • }

Related Solutions

ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT