Escolar Documentos
Profissional Documentos
Cultura Documentos
Análise do código
Complexidade
Complexidade
Pode-se dizer que a busca binária tem um desempenho melhor que a de salto,
entretanto esta última tem a vantagem de buscar a chave dentro de uma amostragem
muito menor (apenas um salto) enquanto a binária precisa buscar pela informação em
O(log n) elementos.
A pesquisa de salto tem um tempo de complexidade menor que a busca linear
(O (n)) e maior que a binária (O (log n)). O tamanho ideal de um bloco a ser saltado é
(√n). Isso faz com que a complexidade de tempo de busca de salto seja O (√n). No
pior caso, não salta n/k e se o último valor verificado é maior do que o desejado, faz-
se no máximo K1 comparações. Isso significa n/k + K – 1 comparações.
Análise do código
ALGORITMOS DE ORDENAÇÃO
Imagine que você precisa procurar por um nome em uma agenda de telefones
sem qualquer tipo de ordenação. Esta certamente seria uma tarefa complexa e
demorada. Esse mesmo problema ocorre com as informações em computação. Por
esta razão, sistemas que estruturam dados mais complexos com arrays e listas
precisam armazenar seu conteúdo em ordem crescente ou decrescente para facilitar
as pesquisas de informações dentro dessas estruturas.
Tente imaginar uma tabela de um banco de dados de uma instituição financeira
renomada, quantos milhares de registros com diversas informações importantes estão
armazenados ali? Suponha que essas tabelas não fossem ordenadas, quanto tempo
um usuário levaria para fazer uma simples consulta de dados?
Os algoritmos de ordenação são métodos que organizam estruturas complexas
e seus conjuntos de dados em uma ordem crescente ou decrescente, desta forma,
melhorando o desempenho de consultas (NASCIMENTO; MOZZAQUATRO;
ANTONIAZZI, 2016).
Os métodos de ordenação podem ser:
• Internos: Onde os registros cabem na memória principal (in-place) e
podem ser acessados imediatamente;
• Externos: Onde os registros não cabem na memória principal (not in-
place) e só podem ser consultados por meio de grandes blocos ou por acesso
sequencial. (NASCIMENTO; MOZZAQUATRO; ANTONIAZZI, 2016).
Complexidade
Lembre-se que a complexidade desse tipo de algoritmo é do tipo n² etapas de
processamento para cada número n de elementos que serão ordenados. Desta forma,
se um array possui cinco elementos, o número de passos do processo será 25.
Quando lidamos com listas muito longas, a quantidade de etapas faz com que
esse método se torne impraticável no mundo real. Por esta razão, esse algoritmo só
é usado no mundo acadêmico para gerar conhecimento de lógica de ordenação.
Complexidade
No melhor dos casos, a complexidade desse algoritmo é dada pelo termo O(n)
quando o array está completamente ordenado. Na pior das situações, tem-se o termo
O(n²), ou seja, um array com 20 elementos cria uma complexidade de 20², portanto
400 iterações.
Análise do algoritmo
A figura mostra um script em linguagem Java implementado com o algoritmo
de inserção.
Figura– Implementação do algoritmo e ordenação por inserção