Entretanto, podemos ver que esse não é um método muito eficiente, pois em cada iteração ordenamos apenas um elemento do conjunto original, além de usar memória adicional com a cópia ordenada. Um método mais eficiente usa os mesmos princípios desse ordenamento, mas sem a utilização de uma lista auxiliar, pois apenas altera os elementos de posição. O algoritmo é descrito a seguir:

  1. buscar o menor valor dentre os elementos não ordenados.
  2. trocar esse elemento de posição com o elemento da primeira posição não ordenada.
  3. Repetir os passos 1 a 2 até que não haja elementos não ordenados.

Vamos retomar o exemplo anterior e executar o algoritmo:

Esse tipo de método é melhor que o anterior, mas ele não é muito eficiente. A cada iteração movimentamos apenas um elemento, mas fazemos N-i comparações por iteração para saber qual é o menor valor, onde N é a quantidade de elementos e i é o número da iteração. Matematicamente podemos comprovar que a quantidade total de comparações é de N2. Isso significa que o esforço computacional cresce quadraticamente com a quantidade de elementos a serem ordenados. Veremos um método mais eficiente.

Copyright © 2014 AIEC.