Comparação entre Algoritmos de Ordenação

Comparação entre os Algoritmos de Ordenação

Algoritmos de ordenação (em inglês, sorting, que significa literalmente classificar, pôr em ordem…) são os procedimentos (que param) responsáveis por ordenar (colocar em sequência) um conjunto de dados, segundo um critério determinado.

Segundo (ZIVIANI, 2004), existe um conjunto amplo de algoritmos para resolver essa tarefa, e cada um possui uma vantagem particular sobre os outros. Todos eles têm o mesmo objetivo: ordenar os dados, ou seja, rearranjar um conjunto de objetos em ordem ascendente ou descendente, com o finalidade de facilitar a recuperação destes dados posteriormente. Por exemplo, é um requisito para o algoritmo de busca binária que os dados estejam ordenados.

Além disso, no nosso dia-a-dia usamos isso o tempo todo, mas nem sempre reparamos. Dicionários, listas telefônicas, suas músicas no Media Player, seus contatos no Celular, no MSN… Todos estão ordenados segundo algum critério: ordem alfabética (ou lexicográfica, que leva em conta números, símbolos, etc), ordem numérica, quem estiver on-line, e por aí vai. Agora imagine se os nomes das pessoas na lista telefônica, por exemplo, não estivessem ordenados? Seria bem ruim.

Explicado e provado que é muito importante, ainda falta falar sobre uma coisa: lemos lá no livro do Ziviani, citado ali em cima, que existem vários tipos diferentes, ou várias estrategias ou abordagens diferentes para se ordenar dados, certo? Mas qual será o melhor para qual situação?

Esse site esperto aqui tem uma animação interativa comparando os algoritmos de ordenação mais famosos (quicksorte, shellsort, mergesort, heapsort, etc) e os casos mais estudados (dados em ordem reversa, em ordem randômica, etc). Ótimo para aqueles que estão passando pela disciplina “Projeto e Análise de Algoritmos”. Se você é um deles, dê uma olhada lá: garanto que vai esclarecer algumas dúvidas. E boa sorte (provavelmente você irá precisar! Hehe! Tô brincando..).

Ah, se você não gosta de nenhum desses algoritmos, ou acha que são totalmente ineficientes, você ainda tem a opção de utilizar o mais novo avanço da computação: Maggie Sort. Ele utiliza técnicas de inteligência artificial com tentativa e erro exaustiva. Vale a pena dar uma olhada na demonstração:

Hehe! Só pra descontrair.

Até a próxima.

Sobre maverick