<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
Entendi.<div>Porém , quando eu executo a função mergesort diz "vec não encontrado".</div><div>Porque será?</div><div><br></div><div>Att,</div><div>Jackeline.</div><div><br><div><div id="SkyDrivePlaceholder"></div>> From: beniltoncarvalho@gmail.com<br>> Date: Thu, 14 Mar 2013 13:56:40 -0300<br>> To: r-br@listas.c3sl.ufpr.br<br>> Subject: Re: [R-br] "Ordenação Mergesort"<br>> <br>> exato, eu uso o i+1 p nao ter q ficar redimensionando o vetor a todo momento...<br>> <br>> Em 14 de março de 2013 13:50, Jackeline Bonetti Campos<br>> <jackebcampos@hotmail.com> escreveu:<br>> > Verdade..<br>> > Vou separar em duas funções e fazer as chamadas recursivas e ver se da<br>> > certo!<br>> > Ta muito parecido com o seu. A maior diferença é na resposta.<br>> > A sua você criou um vetor do tamanho do vetor original e a partir que foram<br>> > surgindo os menores valores você adotou i=1+i.<br>> > Correto?<br>> ><br>> > Obrigada novamente!<br>> ><br>> ><br>> >> From: beniltoncarvalho@gmail.com<br>> >> Date: Thu, 14 Mar 2013 13:12:49 -0300<br>> >> To: r-br@listas.c3sl.ufpr.br<br>> ><br>> >> Subject: Re: [R-br] "Ordenação Mergesort"<br>> >><br>> >> Pela "cara" do codigo, tudo o que vc precisa e' separar o codigo em<br>> >> duas funcoes... veja no que eu te mandei, que o mergesort chama ele<br>> >> proprio... e a ultima coisa e' fazer a ordenacao.<br>> >><br>> >> Em 14 de março de 2013 12:37, Jackeline Bonetti Campos<br>> >> <jackebcampos@hotmail.com> escreveu:<br>> >> > Olá Elias.<br>> >> > É o merge sort.<br>> >> ><br>> >> > Benilton Carvalho,obrigada!<br>> >> > Vou olhar a sua implementação.<br>> >> > Não mandei o código inteiro. Somente a parte que está dando erro.<br>> >> ><br>> >> > Segue abaixo o código todo:<br>> >> ><br>> >> > mergesort=function(x){ # Função que irá quebrar a entrada ao meio cada<br>> >> > vez<br>> >> > que for acionada<br>> >> > semisort=function(y,z){ #Função que vai juntando ordenadamente as<br>> >> > partes da entrada<br>> >> > resultado=NULL<br>> >> > while(length(y)>0 & length(z)>0){ # Enquanto tiver elemento<br>> >> > nos dois subvetores<br>> >> > if(y[1]<=z[1]){ # se o primeiro elemento do subvetor<br>> >> > a esquerda for menor que o primeiro elemento do subvetor a direita<br>> >> > resultado=c(resultado,y[1])<br>> >> > y=y[-1] # Tira o primeiro elemento do vetor,<br>> >> > já que ele já foi adicionado ao resultado<br>> >> > }<br>> >> > else{<br>> >> > resultado=c(resultado,z[1])<br>> >> > z=z[-1]<br>> >> > }<br>> >> > }<br>> >> > if(length(y)>0){ # A partir do momento que acaba os<br>> >> > elementos em uma das metades, me resta "copiar" o que sobrou da outra<br>> >> > metade<br>> >> > resultado=c(resultado,y)<br>> >> > }<br>> >> > if(length(z)>0){<br>> >> > resultado=c(resultado,z)<br>> >> > }<br>> >> > return(resultado) # Retorna o resultado ordenado<br>> >> > }<br>> >> > tamanho=length(x) # Se a entrada tiver mais de um elemento, o<br>> >> > algoritmo irá "quebrar" a entrada ao "meio" para ordenar individualmente<br>> >> > cada entrada e depois juntar as metades já ordenadas<br>> >> > if(tamanho>1){<br>> >> > meio= tamanho/2<br>> >> > esq=x[1:floor(meio)]<br>> >> > dit=x[floor(meio+1):tamanho]<br>> >> > esq=mergesort(esq)<br>> >> > dit=mergesort(dit)<br>> >> > if(esq[length(esq)]<=dit[1]){<br>> >> > return(c(esq,dit))<br>> >> > }<br>> >> > else{<br>> >> > semisort(esq,dit)<br>> >> > }<br>> >> > }<br>> >> > else{ # Se a entrada for um unico elemento, a ordenação dela é<br>> >> > trivial<br>> >> > return(x)<br>> >> > }<br>> >> > }<br>> >> ><br>> >> > Att,<br>> >> > Jackeline.<br>> >> ><br>> >> ><br>> >> >> From: eliaskrainski@yahoo.com.br<br>> >> >> To: r-br@listas.c3sl.ufpr.br<br>> >> >> Date: Thu, 14 Mar 2013 16:27:03 +0100<br>> >> >> Subject: Re: [R-br] "Ordenação Mergesort"<br>> >> ><br>> >> >><br>> >> >> Curiosidade: Esse algoritmo e' o quick sort?<br>> >> >><br>> >> >><br>> >> >> _______________________________________________<br>> >> >> R-br mailing list<br>> >> >> R-br@listas.c3sl.ufpr.br<br>> >> >> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br<br>> >> >> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça<br>> >> >> código mínimo reproduzível.<br>> >> ><br>> >> > _______________________________________________<br>> >> > R-br mailing list<br>> >> > R-br@listas.c3sl.ufpr.br<br>> >> > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br<br>> >> > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça<br>> >> > código<br>> >> > mínimo reproduzível.<br>> >> _______________________________________________<br>> >> R-br mailing list<br>> >> R-br@listas.c3sl.ufpr.br<br>> >> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br<br>> >> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça<br>> >> código mínimo reproduzível.<br>> ><br>> > _______________________________________________<br>> > R-br mailing list<br>> > R-br@listas.c3sl.ufpr.br<br>> > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br<br>> > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código<br>> > mínimo reproduzível.<br>> _______________________________________________<br>> R-br mailing list<br>> R-br@listas.c3sl.ufpr.br<br>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br<br>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.<br></div></div>                                    </div></body>
</html>