Mostrando postagens com marcador Estrutura de Dados. Mostrar todas as postagens
Mostrando postagens com marcador Estrutura de Dados. Mostrar todas as postagens

Algoritmos de Ordenação - O que é?










Algoritmo de Ordenação

Em ciência da computação diz-se que é um algoritmo que coloca os elementos de uma dada sequência em uma certa ordem, podendo ser uma ordenação completa ou parcial. As ordens mais usadas são a numérica e a lexicográfica.
Existem vários motivos para se querer ordenar uma sequência. Uma delas é a possibilidade de acessar os seus dados de modo mais rápido e eficiente.
Existem alguns métodos bem simples de ordenação, como: Insertion, Selection, Bubble, Comb.
Resultado de imagem para insertion sort gif
Insertion
Resultado de imagem para selection sort gif
Selection
Imagem relacionada
Bubble

Imagem relacionada
Comb
Ou alguns mais complexos, como: Merge, Heapsort, Shell, Radix, Gnome, Counting, Bucket, Cocktail, Timsort, Quick.

O uso de cada algoritmo vai depender da estrutura de dados utilizada, dos tipos de dados, e do tipo de ordenação desejada.

Conceito rápido:
Explicação completa:
Implementação em código:
Página do Departamento de Matemática da USP:



Share:

Algoritmos de Ordenação - QuickSort




O que é?

É um método de ordenação muito rápido e eficiente, inventado por C.A.R. Hoare em 1960. Naquela época, Hoare ainda era estudante e trabalhou em um projeto de tradução de máquina para o National Physical Laboratory. Ele criou o quicksort ao tentar traduzir um dicionário de inglês para russo, ordenando as palavras, tendo como objetivo reduzir o problema original em subproblemas que possam ser resolvidos mais fácil e rápido. Após alguns refinamentos, o método foi publicado em 1962.



O quicksort adota a estratégia de divisão e conquista. A mesma
consiste em rearranjar os valores de modo que as "menores" fiquem atrás das "maiores". Em seguida o quicksort ordena as duas sublistas de chaves menores e maiores recursivamente até que a lista completa se encontre ordenada. Os passos são:
  1. Escolher um elemento da lista, denominado pivô;
  2. Rearranjar a lista de forma que todos os elementos anteriores ao pivô sejam menores que ele, e todos os elementos posteriores ao pivô sejam maiores que ele. Ao fim do processo o pivô estará em sua posição final e haverá duas sub listas não ordenadas. Essa operação é denominada partição;
  3. Ordenar recursivamente a sub lista dos elementos menores e a sub lista dos elementos maiores;
O caso base da recursão são as listas de tamanho zero ou um, que estão sempre ordenadas. O processo não é infinito, pois a cada iteração pelo menos um elemento é posto em sua posição final e não será mais manipulado na iteração seguinte.
A escolha do pivô e os passos de partição podem ser feitos de diferentes formas e a escolha de uma implementação específica afeta fortemente a performance do algoritmo.


Aqui um vídeo em inglês que explica o conceito em dois minutos:
https://www.youtube.com/watch?v=HDQd6_0TJIE
Uma implementação em C:
http://www.programasprontos.com/algoritmos-de-ordenacao/algortimo-quick-sort/
Uma explicação teórica do Departamento de Matemática da USP:
https://www.ime.usp.br/~pf/algoritmos/aulas/quick.html
Explicação rápida do conceito:
https://pt.wikipedia.org/wiki/Quicksort

Share:

Estrutura de Dados - Meme 2


Share:

Links de vídeos

Olá pessoal, vou mostrar aqui alguns links de videos legais pra vocês:




Pra quem gosta de ficar vendo vídeos hipnóticos pra dormir.

https://www.youtube.com/watch?v=kPRA0W1kECg&t=66s
https://www.youtube.com/watch?v=y9Ecb43qw98



Aqui uma explicação melhor sobre notação Big O

https://www.youtube.com/watch?v=kgBjXUE_Nwc



Aqui uma explicação usando dança para demonstrar o método de quicksort

https://www.youtube.com/watch?v=ywWBy6J5gz8




Share:

Estrutura de dados - Slides

    
                   Algoritmo de Quicksort




                 Algoritmo de Bubblesort




                   Algoritmo de Insertionsort






REFERENCIAS:

TENENBAUM, Aaron M.. Estrutura de dados usando C.

http://calhau.dca.fee.unicamp.br/wiki/images/0/01/EstruturasDados.pdf
Share:

Estrutura de Dados - Meme

Share:

Postagens mais visitadas

Traduzir Blog

Para saber mais

Resultados da pesquisa