Skip to content
insertion sort

File:Insertion_sort.gif · Wikimedia Commons · See Wikimedia Commons

EntityQ117241· pop 46· linked from 89 articles

insertion sort

Sign in to save

sorting algorithm that, at each iteration, inserts the current input element into the suitable position between the already sorted elements

Key facts

Class
Sorting algorithm
Data structure
Array
Worst case performance
O ( n 2 ) {\displaystyle O(n^{2})} comparisons and swaps
Best case performance
O ( n ) {\displaystyle O(n)} comparisons, O ( 1 ) {\displaystyle O(1)} swaps
Average performance
O ( n 2 ) {\displaystyle O(n^{2})} comparisons and swaps
Worst case space complexity
O ( n ) {\displaystyle O(n)} total, O ( 1 ) {\displaystyle O(1)} auxiliary
Optimal
No

via Wikipedia infobox

Article · Português

Insertion Sort, ou ordenação por inserção, é um algoritmo de ordenação que, dado uma estrutura (array, lista) constrói uma matriz final com um elemento de cada vez, uma inserção por vez. Assim como algoritmos de ordenação quadrática, é bastante eficiente para problemas com pequenas entradas, sendo o mais eficiente entre os algoritmos desta ordem de classificação. Podemos fazer uma comparação do Insertion Sort com o modo como algumas pessoas organizam um baralho num jogo de cartas. Imagine que você está jogando ás cartas. Você está com as cartas na mão e elas estão ordenadas. Você recebe uma nova carta e deve colocá-la na posição correta da sua mão de cartas, de forma a que as cartas obedeçam à ordenação. A cada nova carta adicionada à sua mão de cartas, a nova carta pode ser menor que algumas das cartas que você já tem na mão ou maior, e assim, você começa a comparar a nova carta com todas as cartas na sua mão até encontrar sua posição correta. Você insere a nova carta na posição correta, e, novamente, a sua mão é composta de cartas totalmente ordenadas. Então, você recebe outra carta e repete o mesmo procedimento. Então outra carta, e outra, e assim em diante, até não receber mais cartas. Esta é a ideia por trás da ordenação por inserção. Percorra as posições do array, começando com o índice 1 (um). Cada nova posição é como a nova carta que você recebeu, e você precisa inseri-la no lugar correto no subarray ordenado à esquerda daquela posição.

Abstract from DBpedia / Wikipedia · CC BY-SA

Gallery (4)