Arquivo da tag: Algoritmos

Bubble-sort-dance

Algoritmos de ordenação demonstrados com dança folclórica

Você já imaginou aprender algoritmos dançando? Pois foi isso que fizeram na Sapientia University, Romania. 

Em uma série de vídeos foi demonstrado como diferentes algoritmos de ordenação funcionam por meio de pessoas numeradas dançando umas em volta das outras e se rearranjando do menor para o maior número.

Os algoritmos apresentados foram: Quick-sort, Merge-sort, Shell-sort, Select-sort, Bubble-sort e Insert-sort.

Veja todos eles abaixo.

Quick sort

Merge-sort

Shell-sort

Select-sort

Bubble-sort

Insert-sort

 

Enésimo termo da sequência Fibonacci sem recursividade em C

O programa a seguir calcula e exibe um elemento da sequência Fibonacci. O programa foi construído sem o uso de recursividade.
O que deixa o código um pouco menos elegante, mas evita certas limitações da recursão frente à valores muito altos.

fib

//================================================================
// Descricao: O programa calcula e mostra o enésimo termo
//            da sequência Fibonacci sem uso de recursividade.
//================================================================

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

// Protótipo da função fibonacci
int fibonacci(int n);

// Função Principal
int main(int argc, char** argv) {
	int n;

    // Lê a posição do termo
    printf("Digite a posicao: ");
    scanf("%d", &n);

    // Imprime o termo
    printf("O termo: %d\n", fibonacci(n));

    system("pause");
    return 0;
}

// Função Fibonacci
int fibonacci(int n) {
	int anterior = 0,
		proximo = 1,
		aux,
  		i;

	// Se for o primeiro número da lista
	if(n == 1) {
		return 0;
	// Se for o segundo número da lista
 	} else if(n == 2) {
 		return 1;
	// Se for um número a partir da terceira posição
  	} else {
  		// Calcula os valores dois a dois até chegar na posição requerida
		for(i = 3; i <= n; i++) {
			aux = proximo;
			proximo = anterior + proximo;
			anterior = aux;
		}
		return proximo;
  	}
}

Fórmula de Bháskara – C

//================================================================
// Descricao: O programa calcula e mostra o resultado de uma
// equacao do segundo grau.
//================================================================

// Libs
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

// Funcaoo main
// Main Function
int main(int argc, char** argv)
{
 float a, b, c, x1, x2, delta;

 // Le os termos da equacao
 printf("Digite o valor do termo a: ");
 scanf("%f", &a);
 printf("Digite o valor do termo b: ");
 scanf("%f", &b);
 printf("Digite o valor do termo c: ");
 scanf("%f", &c);

 // Calcula o valor de x1
 delta = b*b - 4*a*c;
 x1 = (-b + sqrt(delta)) / (2*a);
 x2 = (-b - sqrt(delta)) / (2*a);

 // Imprime os resultados
 if(delta < 0) {
 printf("A equacao nao possui raizes reais.n");
 } else {
 printf("O valor de x1: %.2fn", x1);
 printf("O valor de x2: %.2fn", x2);
 }

 system("pause");
 return 0;
}