Ordenação Binaria
Publicado por Enzo de Brito Ferber 08/06/2008
[ Hits: 5.598 ]
Homepage: http://www.maximasonorizacao.com.br
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
// 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;
}
Desenhando uma superfície Bézier
Nenhum comentário foi encontrado.
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Script de montagem de chroot automatica
Eaí? Já programou no windows? (6)
Instalar Dual Boot, Linux+Windows. (9)









