# Selection sort in R:

selection.sort <- function(elements.vec, ascending = TRUE) {
  max <- length(elements.vec)
  for (j in 1:(max - 1)) {
    m <- elements.vec[j]
    p <- j
    for(k in (j + 1):max) {
      if(ascending && elements.vec[k] < m || !ascending && elements.vec[k] > m) {
        m <- elements.vec[k]
        p <- k
      }
    } 
    elements.vec[p] <- elements.vec[j]
    elements.vec[j] <- m
  } 
  return(elements.vec)
}

# Example:
# selection.sort(c(5, 2, 3, 1, 1, 4)) 
# [1] 1 1 2 3 4 5
# Note that selection sort is not a stable sorting algorithm.