Ordenação Binaria

Publicado por Enzo de Brito Ferber 08/06/2008

[ Hits: 5.310 ]

Homepage: http://www.maximasonorizacao.com.br

Download bin_order.c




Esse script pega um número pela linha de comando e gera uma string de 1 a 'n' e organiza pela notação "pré-ordenada" (como se fosse uma árvore binária). Bem interessante pra entender pesquisa binária.

Espero que seja útil pra álguem.

[]'s

  



Esconder código-fonte

// bin_order.c

#include <stdio.h>
#include <stdlib.h>

static int *matrix;
static int *nmatrix;
static int matrix_size;
static int matrix_pos;

void bin_order (int low, int high)
{
        int mid = (low + high) / 2;
        
        nmatrix[matrix_pos] = matrix[mid];
        matrix_pos++;
        if (low >= high) return ;
               
        bin_order (low, mid - 1);
        bin_order (mid + 1, high); 
}

int main (int argc, char **argv)
{
        register int i;
        
        matrix_pos = 0;
        
        if (argc < 2)
        {
                printf("Uso: %s <numero>\n", argv[0]);
                return 0;
        }
        
        matrix_size = atoi(argv[1]);
    
        matrix  = (int *) malloc (matrix_size * sizeof (int));
        nmatrix = (int *) malloc (matrix_size * sizeof (int));
    
        if ( (!matrix) || (!nmatrix))
        {
                perror("malloc()");
                return 0;
        }
    
        for (i = 0; i < matrix_size; i++)matrix[i] = (i + 1);
        
        printf("Ordem Binaria: ");
        bin_order (0, matrix_size - 1);
        for (i = 0; i < matrix_size; i++) printf("%d ", nmatrix[i]);
        puts("");
    
        return 0;
}

Scripts recomendados

Algoritmo de Ordenação Radix

Uso de threads no C

Desenhando Nuvens ou o Fractal de Plasma

Photon Mapper

Pilha usando lista encadeada


  

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