// demoSelectionSort.c   P. Conrad  CISC105 Fall 2004

#include <stdio.h>


void putMaxAtEnd(int a[], int n);
void printOnOneLine(int a[], int n);
void swap(int *p, int *q);
void badSwap(int p, int q);

int main(void)
{

  /* int a=999; */
  int nums[6]={666, 420, 3, 17, 419, 21};
  int i;
  
  printOnOneLine(nums,6);

  for (i=6; i>=2; i--) /* this should be i-- not i++ */
    {
      putMaxAtEnd(nums,i);
      printOnOneLine(nums,6);
    }
  
  /* printf("Just for fun, nums[-1]=%d\n",nums[-1]); */
  
}


void swap(int *p, int *q)
{
  int temp = (*p);
  (*p) = (*q);
  (*q) = temp;
}

void badSwap(int p, int q)
{
  int temp = (p);
  (p) = (q);
  (q) = temp;
}


void putMaxAtEnd(int a[], int n)
{
  int i;
  int maxPos = 0;

  for (i=1; i<n; i++)
    if (a[i] > a[maxPos])
      maxPos = i;

    swap(&a[n-1],&a[maxPos]); 

    /*   badSwap(a[i],a[maxPos]); */

}

void printOnOneLine(int a[], int n)
     
{

  int i;
  for (i=0; i<n; i++)
    printf("%d ", a[i]);

  printf("\n");
}

