Resumo de Insertion sort (ordenação por inserção)
Ordenação por Inserção (Insertion Sort): Guia Completo para Estudantes
Ordenação por Inserção: Princípios Fundamentais
A ordenação por inserção é um algoritmo simples e intuitivo para organizar elementos em uma lista. Imagine que você está organizando um baralho de cartas na sua mão: você pega uma carta nova e a insere no lugar certo entre as cartas que você já tem em ordem. É exatamente assim que a ordenação por inserção funciona!
Este algoritmo é particularmente útil para listas pequenas ou para aquelas que já estão um pouco organizadas. Sua simplicidade o torna fácil de entender e implementar.
Como Funciona a Ordenação por Inserção?
O algoritmo constrói uma lista ordenada passo a passo. Ele pega um elemento por vez da parte "desordenada" da lista e o coloca na posição correta dentro da parte que já está "ordenada". Pense nisso como ter uma sublista à esquerda que sempre permanece ordenada.
Vamos detalhar o processo:
- Início: Consideramos que o primeiro elemento da lista (na posição $0$) já está "ordenado" por si só. Ele forma nossa primeira sublista ordenada, de tamanho $1$.
- Repetição: Para cada elemento seguinte na lista (do índice $1$ até o último): a. Escolha do Elemento: Selecionamos o elemento atual para ser inserido. Este é o que chamamos de "chave". b. Comparação e Deslocamento: A chave é comparada com os elementos da sublista já ordenada, começando do último elemento ordenado e movendo para a esquerda. Se um elemento na sublista ordenada for maior que a chave, ele é deslocado uma posição para a direita para abrir espaço. c. Inserção: Quando encontramos uma posição onde todos os elementos à esquerda são menores ou iguais à chave, e todos os elementos à direita são maiores ou iguais à chave, inserimos a chave ali.
Este ciclo continua até que todos os elementos tenham sido inseridos na sublista ordenada, resultando em uma lista completamente organizada.
Definição: A chave é o elemento atual que está sendo processado e inserido na parte ordenada da lista durante o algoritmo de ordenação por inserção.
Exemplo Passo a Passo
Vamos aplicar a ordenação por inserção à lista [5, 2, 4, 6, 1, 3].
Lista Inicial: [5, 2, 4, 6, 1, 3]
-
Passo 1: Processando o valor $2$ (índice $1$)
- Sublista ordenada:
[5]. A chave é $2$. - Comparamos $2$ com $5$. Como $2 < 5$, o $5$ é deslocado para a direita.
- Inserimos $2$ na posição vazia.
- Lista Atual:
[2, 5, 4, 6, 1, 3]
- Sublista ordenada:
-
Passo 2: Processando o valor $4$ (índice $2$)
- Sublista ordenada:
[2, 5]. A chave é $4$. - Comparamos $4$ com $5$. Como $4 < 5$, o $5$ é deslocado para a direita.
- Comparamos $4$ com $2$. Como $4 > 2$, $4$ é inserido logo após o $2$.
- Lista Atual:
[2, 4, 5, 6, 1, 3]
- Sublista ordenada:
-
Passo 3: Processando o valor $6$ (índice $3$)
- Sublista ordenada:
[2, 4, 5]. A chave é $6$. - Comparamos $6$ com $5$. Como $6 > 5$, o $6$ já está na posição correta em relação ao $5$. Não há deslocamentos.
- Lista Atual:
[2, 4, 5, 6, 1, 3]
- Sublista ordenada:
-
Passo 4: Processando o valor $1$ (índice $4$)
- Sublista ordenada:
[2, 4, 5, 6]. A chave é $1$. - Comparamos $1$ com $6$. O $6$ é deslocado.
- Comparamos $1$ com $5$. O $5$ é deslocado.
- Comparamos $1$ com $4$. O $4$ é deslocado.
- Comparamos $1$ com $2$. O $2$ é deslocado.
- Inserimos $1$ na primeira posição.
- Lista Atual:
[1, 2, 4, 5, 6, 3]
- Sublista ordenada:
-
Passo 5: Processando o valor $3$ (índice $5$)
- Sublista ordenada:
[1, 2, 4, 5, 6]. A chave é $3$. - Comparamos $3$ com $6$. O $6$ é deslocado.
- Comparamos $3$ com $5$. O $5$ é deslocado.
- Comparamos $3$ com $4$. O $4$ é deslocado.
- Comparamos $3$ com $2$. Como $3 > 2$, $3$ é inserido logo após o $2$.
- Lista Final:
[1, 2, 3, 4, 5, 6]
- Sublista ordenada:
A lista agora está completamente ordenada!
Já tem uma conta? Entrar
Ordenação por Inserção
Klíčová slova: Ordenação por Inserção, Análise da Ordenação por Inserção, Visualização do Algoritmo de Ordenação por Inserção
Klíčové pojmy: A ordenação por inserção é um algoritmo de ordenação intuitivo, similar a organizar cartas na mão., Funciona construindo uma sublista ordenada, inserindo um elemento de cada vez na posição correta., O primeiro elemento é considerado a sublista ordenada inicial de tamanho $1$., Cada elemento subsequente é selecionado como "chave" para inserção., A chave é comparada com elementos da sublista ordenada e elementos maiores são deslocados para a direita., A chave é inserida na posição onde mantém a ordem da sublista., O algoritmo é eficiente para conjuntos de dados pequenos ou parcialmente ordenados., No melhor caso (lista já ordenada), a complexidade de tempo é linear, $O(n)$., Um exemplo prático demonstra o passo a passo da ordenação de uma lista numérica., A complexidade $O(n)$ significa que o tempo de execução cresce proporcionalmente ao número de elementos., Híbridos de algoritmos de ordenação frequentemente usam Insertion Sort para pequenas porções.