#include <stdio.h>
#define SIZE 10
/* Terry Harvey CISC105 Section 21 TA Aaron*/

/* 10 am unfinished */
int findMaxIndex(int input[], int size);
void swapMaxWithEnd(int data[], int end);
void printArray(int data[], int size);
void ssort(int input[], int size);

int main(){

    int data[SIZE] = {500,8,1,2,9,0,3,5,1100,80};

    printArray(data, SIZE);
    printf("\n");
    ssort(data, SIZE);
    printArray(data, SIZE);
    printf("\n");
 
    return 0;
}

void ssort(int input[], int size){
    if (size == 1) return;
    swapMaxWithEnd(input, size - 1);
    ssort(input, size -1);
    return;
}

/*
 * Returns index of max value in input array
 */
int findMaxIndex(int input[], int size){
    int i ;
    int maxIndex = 0;
    for(i=0; i<size; i++){
	if (input[maxIndex] < input[i])
	    maxIndex = i;
    }
    return maxIndex;
}

/*
 * Swaps max value in array data with value at end;
 * Ends is size of arraay -1
 */
void swapMaxWithEnd(int data[], int end){
    int temp;
    int maxIndex = findMaxIndex(data, end+1);
    
    temp = data[end];
    data[end] = data[maxIndex];
    data[maxIndex] = temp;
    return;
}

void printArray(int data[], int size){
    int i;
    for(i = 0; i < size; i++)
	printf("%d ", data[i]);
    return;
}
