/* Program selectionsort
 * Stephen Scott
 * Sorts an array of integers
 */

#include<stdio.h>

void selectionSort(int *a, int size);

int main()
{
int array[] = {13, -6, 9, -4, 10};
int size = 5;
int i;

// for (i=0; i<size;i++)
//  printf("%2d  ", array[i]);
// printf("\n");

selectionSort(array, size);

// for (i=0; i<size;i++)
//  printf("%2d  ", array[i]);
// printf("\n");

}


void selectionSort(int *a, int size)
{
  int i, j, minimum_index, temp,k;


printf("Initial array: ");
for (k=0; k<size;k++)
  printf("%2d  ", a[k]);
printf("\n\n\n");

  for(i=0; i<size-1; i++)
  {
    minimum_index = i;
    for(j=i+1; j<size; j++)
    {

printf("i              %*d\n", 4*i+1,i);
printf("i=%d, j=%d:     ",i,j);
for (k=0; k<size;k++)
  printf("%2d  ", a[k]);
printf("\n");
printf("j              %*d\n", 4*j+1,j);
printf("m              %*d\n", 4*minimum_index+1,minimum_index);

       if(a[minimum_index] > a[j])
       {
          minimum_index = j;
       }

printf("New m          %*d\n\n\n", 4*minimum_index+1,minimum_index);

    }
    temp = a[i];
    a[i] = a[minimum_index];
    a[minimum_index] = temp;
  }

printf("Final array:  ");
for (k=0; k<size;k++)
  printf("%2d  ", a[k]);
printf("\n\n\n");
}
