subsort=function(y,z){ #Função que vai juntando ordenadamente as partes da entrada
tam=length(x) # Se a entrada tiver mais de um elemento, o algoritmo irá "quebrar" a entrada ao "meio" para ordenar individualmente cada entrada e depois juntar as metades já ordenadas
if(tamanho>1)
{
meio= tam/2
esq=c[1:flor(meio)]
dit=c[(meio+1):tam]
esq=mergesort(esq) #vou ter que ficar aplicando o mergesort até o vetor da esquerda ter um elemento.
dit=mergesort(dit) #vou ter que ficar aplicando o mergesort até o vetor da direita ter um elemento
if(esq[length(esq)]<=dit[1]) #se o vetor da esquerda do tamanho da esquerda (que deve ser um) for menor ou igual a 1
{
return(c(esq,dit)) #na hora de juntar o subvetor da esquerda fica primeiro.
}
else
{
subsort(esq,dit) #subsort é o vetor temporário.
}
}
else # Se a entrada for um único elemento não existe ordenação. Se TAM<1. devolve o elemento.
{
return(x)
}