Bilioteca de Ordenação

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Bilioteca de Ordenação

João Carlos Abreu Júnior via LinkedIn
Existe em python alguma biblioteca de ordenação que contemplam os algoritmos mais famosos para essa finalidade?

Abraços

Reply | Threaded
Open this post in threaded view
|

Res: Bilioteca de Ordenação

marcos thomaz-2
Se for tipo o bubble sort, insertion sort, quick sort e o merge sort, não sei se
tem prontos, mas é bem simples sua implementação.
 []'s


Marcos Thomaz




________________________________
De: jcajcefet <[hidden email]>
Para: [hidden email]
Enviadas: Quarta-feira, 7 de Julho de 2010 13:18:38
Assunto: [python-brasil] Bilioteca de Ordenação

 
Existe em python alguma biblioteca de ordenação que contemplam os algoritmos
mais famosos para essa finalidade?

Abraços


 


     

[As partes desta mensagem que não continham texto foram removidas]

Reply | Threaded
Open this post in threaded view
|

Re: Bilioteca de Ordenação

Pinguim Azul
Tem um exemplo de ordenação em python usando zeno reduce no site do
ricbit jam 2:

http://www.ricbit.com/ricbitjam/ricbitjam2.html

2010/7/7 marcos thomaz <[hidden email]>:

> Se for tipo o bubble sort, insertion sort, quick sort e o merge sort, não sei se
> tem prontos, mas é bem simples sua implementação.
>  []'s
>
>
> Marcos Thomaz
>
>
>
>
> ________________________________
> De: jcajcefet <[hidden email]>
> Para: [hidden email]
> Enviadas: Quarta-feira, 7 de Julho de 2010 13:18:38
> Assunto: [python-brasil] Bilioteca de Ordenação
>
>
> Existe em python alguma biblioteca de ordenação que contemplam os algoritmos
> mais famosos para essa finalidade?
>
> Abraços
>
>
>
>
>
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ,-----------------------------------------------------------.
> | Antes de enviar um e-mail para o grupo leia:              |
> | http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar  |
> | E se você é usuário do BOL lembre-se de cadastrar o       |
> | e-mail do grupo na lista branca do seu sistema anti-spam. |
> `-----------------------------------------------------------´Links do Yahoo! Grupos
>
>
>



--
Ricardo Bittencourt
http://www.ricbit.com
Reply | Threaded
Open this post in threaded view
|

Re: Bilioteca de Ordenação

Pedro Werneck-2
In reply to this post by marcos thomaz-2
2010/7/7 marcos thomaz <[hidden email]>
>
>
>
> Se for tipo o bubble sort, insertion sort, quick sort e o merge sort, não sei se
> tem prontos, mas é bem simples sua implementação.
> []'s


Há um tempo atrás quando estava brincando de otimizar e atacar o
quicksort eu implementei um monte de algoritmos em Python. Talvez seja
o que quer.


http://pastebin.com/WARVnErx

---
Pedro Werneck
Reply | Threaded
Open this post in threaded view
|

Re: Bilioteca de Ordenação

Luciano Ramalho
É importante frisar que muito raramente um programador Python tem a
necessidade de implementar um algoritmo de ordenação, porque na
biblioteca padrão de Python já existem métodos e funções robustas e
eficientes para ordenar qualquer coleção ordenável que se usa
cotidianamente.

Além de métodos como list.sort, vale conhecer a função embutida
sorted, que é mais genérica.

Acho importante dizer isso especialmente porque alguns colegas podem
estar aprendendo Python a partir de experiências anteriores com Pascal
ou outras linguagens que não têm algoritmos de ordenação implementados
em suas bibliotecas padrão.

[ ]s
Luciano

PS. Assim como alguns colegas aqui, eu aprendi a programar numa época
em que as "bibliotecas padrão" incluídas nas implementações das
linguagens mais populares não tinham nem 1% do que existe na Python
Standard Library.

PS2. Alguém sabe dizer qual é o algortimo de ordenação usado nos
métodos list.sort e na função sorted nas versões atuais de Python?
Onde tem essa informação publicada? (além do código-fonte em C)
Reply | Threaded
Open this post in threaded view
|

Re: Bilioteca de Ordenação

Pinguim Azul
2010/7/8 Luciano Ramalho <[hidden email]>:
> PS2. Alguém sabe dizer qual é o algortimo de ordenação usado nos
> métodos list.sort e na função sorted nas versões atuais de Python?
> Onde tem essa informação publicada? (além do código-fonte em C)

Não é o timsort?

http://en.wikipedia.org/wiki/Timsort

--
Ricardo Bittencourt
http://www.ricbit.com
Reply | Threaded
Open this post in threaded view
|

Re: Bilioteca de Ordenação

Pedro Werneck-2
In reply to this post by Luciano Ramalho
2010/7/8 Luciano Ramalho <[hidden email]>
[corta]
> Além de métodos como list.sort, vale conhecer a função embutida
> sorted, que é mais genérica.

Bom mencionar que list.sort é in-place, sorted() retorna uma nova
lista ordenada.

[corta]
> PS2. Alguém sabe dizer qual é o algortimo de ordenação usado nos
> métodos list.sort e na função sorted nas versões atuais de Python?
> Onde tem essa informação publicada? (além do código-fonte em C)

É o "timsort", um mergesort bem modificado implementado pelo Tim
Peters. No código fonte do Python há um arquivo Objects/listsort.txt
que descreve em detalhes.



---
Pedro Werneck
Reply | Threaded
Open this post in threaded view
|

Re: Bilioteca de Ordenação

Luciano Ramalho
In reply to this post by Pinguim Azul
2010/7/8 Pinguim Azul <[hidden email]>:
> 2010/7/8 Luciano Ramalho <[hidden email]>:
>> PS2. Alguém sabe dizer qual é o algortimo de ordenação usado nos
>> métodos list.sort e na função sorted nas versões atuais de Python?
>> Onde tem essa informação publicada? (além do código-fonte em C)
>
> Não é o timsort?
>
> http://en.wikipedia.org/wiki/Timsort

Valeu Pedro e Ricbit pela rápida resposta!

Muito legal ler sobre o Timsort na Wikipedia.

Do ponto de vista de marketing é legal saber que o Timsort é tão bom
que foi adotado no Java SE 7!

[ ]s
Luciano
Reply | Threaded
Open this post in threaded view
|

Re: Bilioteca de Ordenação

Paulo Eduardo Neves-3
In reply to this post by Luciano Ramalho
Em 8 de julho de 2010 13:28, Luciano Ramalho <[hidden email]> escreveu:
> É importante frisar que muito raramente um programador Python tem a
> necessidade de implementar um algoritmo de ordenação, porque na
> biblioteca padrão de Python já existem métodos e funções robustas e
> eficientes para ordenar qualquer coleção ordenável que se usa
> cotidianamente.

A única utilidade que consigo imaginar para alguém querer isto já
pronto é para usar de cola em um trabalho acadêmico. Mas claro que o
jcajCEFET nunca faria isto.

Vamos lá, jcajCEFET, diga para que você deseja os principais
algoritmos de busca e de ordenação implementados em Python. Poderemos
te ajudar melhor se você disser a finalidade.

abraços,
Paulo