Nest post, implementamos o algoritmo de ordenação Selection-Sort em Java. O algoritmo possui um funcionamento simples. Apresentamos a seguir as versões recursiva e iterativa.

public class SelectionSort {

   public static int menor(int vet[], int p, int q) {
      int menor = p;
      for (int i = p + 1; i <= q; i++)
         if (vet[i] < vet[menor])
            menor = i;
      return menor;
   }

   public static void troca(int vet[], int i, int j) {
      int aux = vet[i];
      vet[i] = vet[j];
      vet[j] = aux;
   }

   public static void selectionSort(int vet[], int m, int n) {
      if (m < n) {
         int indexMenor = menor(vet, m, n);
         troca(vet, indexMenor, m);
         selectionSort(vet, m + 1, n);
      }
   }

   public static void selectionIterative(int vet[], int m, int n) {
      int indexMenor = 0;
      for (int i = m; i <= n; i++) {
         indexMenor = menor(vet, i, n);
         troca(vet, indexMenor, i);
      }
   }

}

Sigam o @ojavaman e o @inductioncode no Twitter. Para mais informações sobre o Selection-Sort acessem: http://inductioncode.blogspot.com.br/