Ordenação Binaria

Publicado por Enzo de Brito Ferber 08/06/2008

[ Hits: 5.311 ]

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

Árvore binária - Pré-ordem

Duplamente Circular

Converter Decimal para Binário em C

Lista encadeada

Pilha 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