Hey all, I'm trying to write a sort function but am having trouble figuring out how to initialize a value, and making this function work as a generic template. The sort works by:
Find a pair =(ii,jj)= with a minimum value = ii+jj = such at A[ii]>A[jj] If such a pair exists, then swap A[ii] and A[jj] else break;
The function I have written is as follows:
template <typename T>
void sort(T *A, int size)
{
 T min =453;
 T temp=0;
 bool swapper = false;
  int index1 = 0, index2 = 0;
  for (int ii = 0; ii < size-1; ii++){
   for (int jj = ii + 1; jj < size; jj++){
    if((min >= (A[ii]+A[jj])) && (A[ii] > A[jj])){
     min = (A[ii]+A[jj]);
     index1 = ii;
     index2 = jj;    
     swapper = true;
    }
   }
  }
  if (!swapper)
   return;
  else
  {
   temp = A[index1];
   A[index1] = A[index2];
   A[index2] = temp;
   sort(A,size);
  }
 }
This function will successfully sort an array of integers, but not an array of chars. I do not know how to properly initialize the min value for the start of the comparison. I tried initializing the value by simply adding the first two elements of the array together (min = A[0] + A[1]), but it looks to me like for this algorithm it will fail. I know this is sort of a strange type of sort, but it is practice for a test, so thanks for any input.