Ordenar vetor com algoritmo Insertion Sort

Publicado por Santiago Staviski (última atualização em 22/06/2010)

[ Hits: 54.197 ]

Homepage: http://allenkonstanz.blogspot.com

Download insertionsort.cpp




Ordena um vetor em ordem crescente ou decrescente usando um método de ordenação Insertion Sort.

  



Esconder código-fonte

/*Autor: Allen Konstanz 
 * Web: allenkonstanz.blogspot.com */
#include <stdio.h>

void insertionSortD(int array[], int tamanho) {
      int i, j, tmp;
      for (i = 1; i < tamanho; i++) {
            j = i;
            while (j > 0 && array[j - 1] < array[j]) {
                  tmp = array[j];
                  array[j] = array[j - 1];
                  array[j - 1] = tmp;
                  j--;
            }
      }
}
void insertionSortC(int array[], int tamanho) {
      int i, j, tmp;
      for (i = 1; i < tamanho; i++) {
            j = i;
            while (j > 0 && array[j - 1] > array[j]) {
                  tmp = array[j];
                  array[j] = array[j - 1];
                  array[j - 1] = tmp;
                  j--;
            }
      }
}

int main(int argc, char** argv)
{
   int array[100], tamanho, ordem;
   printf("\n\n\t Entre com o número de termos...: ");
   scanf("%d", &tamanho);
   printf("\n\t Entre com os elementos do array...:");
   for(int i = 0; i < tamanho;i++){
      printf("\nDigite o %dº número: ",i+1);
      scanf("%d",&array[i]);
   }
   printf("\n\t Digite 1 para ordernar o array em ordem crescente ou 2 para ordem decrescente: ");
   scanf("%d",&ordem);
   if (ordem == 1){
      insertionSortC(array,tamanho);
      printf("\nArray em ordem crescente: ");
      for(int i=0; i<tamanho; i++){
      printf("\n\t\t\t%d", array[i]);
   }
      
      }else if (ordem ==2) {
   insertionSortD(array,tamanho);
   printf("\nArray em ordem decrescente: ");
   for(int i=0; i<tamanho; i++){
      printf("\n\t\t\t%d", array[i]);
   }
}
   return 0;
}

Scripts recomendados

Calculadora simples em C

clean.h - Biblioteca para limpar um determinado espaço no terminal

programa que mostra o uso de registros em C. Cadastra 10 funcionarios

Relogio

Quadrado de um número


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts