[ create a new paste ] login | about

Link: http://codepad.org/jPnvKaX5    [ raw code | output | fork ]

C++, pasted on Jan 24:
#include <iostream>
#include <assert.h>

void Swap(int& left, int& right)
{
  int tmp = left;
  
  left  = right;
  right = tmp;
}

int Max(const int* arr, int size)
{
  assert(arr);

  int max_index = -1;

  for(int i = 0; i < size; ++i)
    if(arr[i] > arr[max_index])
      max_index = i;

  return max_index;
}

void Sort(int* arr, int size)
{
  assert(arr);

  for(int i = 0; i < size - 1; ++i){
    int max_index = Max(arr, size - i);
    Swap(arr[max_index], arr[size - i - 1]);
  }
}

int main()
{
  int       arr[] = {5, 4, 3, 2, 1,};
  const int size  = sizeof(arr) / sizeof(arr[0]);

  Sort(arr, size);

  for(int i = 0; i < size; ++i)
    std::cout << arr[i] << " ";

  std::cout << std::endl;

  return 0;
}


Output:
1
1 2 3 4 5 


Create a new paste based on this one


Comments: