[R-br] Variante do método seleção.

Benilton Carvalho beniltoncarvalho em gmail.com
Terça Abril 2 23:56:10 BRT 2013


mysort <- function(x){
    ## seleciona o maior, coloca no fim... etc e tal
    if (length(x) >= 1){
        maior <- which.max(x)
        return(c(mysort(x[-maior]), x[maior]))
    }
    return(NULL)
}

Em 2 de abril de 2013 22:53, Jackeline Bonetti Campos
<jackebcampos em hotmail.com> escreveu:
> Olá Edson!
>
> Obrigada por responder.
>
> Já arrumei o código e ficou muito mais simples.
>
> Segue:
>
> selecao<-function(vet)
> {
>   tam<-length(vet)
>
>
>   while(tam>0)
>   {
>     pm<-which.max(vet[1:tam])
>     temp<-vet[tam]
>     vet[tam]<-vet[pm]
>     vet[pm]<-temp
>     tam<-(tam-1)
>   }
>
>   return(vet)
> }
>
> Att,
> Jackeline.
>
> ________________________________
> CC: r-br em listas.c3sl.ufpr.br
> From: edinhoestat em yahoo.com.br
> Date: Tue, 2 Apr 2013 20:49:18 -0400
> To: r-br em listas.c3sl.ufpr.br
> Subject: Re: [R-br] Variante do método seleção.
>
>
> Veja
>
> ?sort
> ?order
>
> [. ]'s.
> Edson Lira
> Estatístico
> Ma-Am
>
> Em 02/04/2013, às 09:46, Jackeline Bonetti Campos <jackebcampos em hotmail.com>
> escreveu:
>
> Olá,
>
> O método de ordenação por seleção normal (onde o menor elemento é encontrado
> e colocado na primeira posição e assim consecutivamente até que todo o vetor
> seja ordenado) é dado pelo algoritmo:
>
> selecao<-function(vet)
> {
>   tam<-length(vet)
>
>
>   for(i in 1:tam)
>   {
>     pm<-which.min(vet[i:tam])
>     pm<-pm+i-1
>     temp<-vet[i]
>     vet[i]<-vet[pm]
>     vet[pm]<-temp
>   }
>
>   return(vet)
> }
>
> Como posso alterar esse código para que a busca seja feita pelo maior
> elemento e este seja colocado na última posição?
>
> Pensei em algo assim:
>
> selecao<-function(vet)
> {
>   tam<-length(vet)
>
>
>   for(i in tam:1)
>   {
>     pm<-which.max(vet[tam:i])
>     pm<-pm+ ??
>     temp<-vet[i]
>     vet[i]<-vet[pm]
>     vet[pm]<-temp
>
>   }
>
>   return(vet)
> }
>
>
> Porém, não sei que atribuição dar ao novo pm para que a ultima colocação
> seja desconsiderada.
>
> Agradeço desde já!
>
> Att,
> Jackeline
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código
> mínimo reproduzível.
>
>
> _______________________________________________ R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de
> postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo
> reproduz�vel.
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código
> mínimo reproduzível.


Mais detalhes sobre a lista de discussão R-br