Algoritmos e Estruturas de Dados Essenciais em C# e Java
Algoritmos de Ordenação
1. Insertion Sort (Ordenação por Inserção)
public static int[] insertionSort(int[] vetor)
{
int i, j, atual;
for (i = 1; i < vetor.length; i++)
{
atual = vetor[i];
j = i;
while ((j > 0) && (vetor[j - 1] > atual))
{
vetor[j] = vetor[j - 1];
j = j - 1;
}
vetor[j] = atual;
}
return vetor;
}2. Ordenação Simples de Vetor
void ordena(int vet[]) {
int i, j, aux;
for (i = 0; i < 5; i++) {
for (j = 0; j < 5; j++) {
if (vet[i] < vet[j]) {
aux = vet[i];
vet[i] = vet[j];
vet[j] = aux;
}
}
}
}Classificação de Triângulos
Verificação das condições de existência de um triângulo e classificação em equilátero, isósceles ou escaleno:
class Program
{
static void Main(string[] args)
{
int a = 0, b = 0, c = 0;
Console.WriteLine("Informe o lado 1:");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Informe o lado 2:");
b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Informe o lado 3:");
c = Convert.ToInt32(Console.ReadLine());
if (a < b + c && b < a + c && c < a + b)
{
if (a == b && b == c)
Console.WriteLine("Equilátero");
else if (a == b || b == c || c == a)
Console.WriteLine("Isósceles");
else
Console.WriteLine("Escaleno");
}
else
{
Console.WriteLine("Não é um triângulo");
}
Console.ReadKey();
}
}Cálculo de Fatorial
Exemplo de cálculo do fatorial de um número inteiro fornecido pelo usuário:
static void Main(string[] args) {
int numero;
Console.WriteLine("Entre com o número que será fatorado:");
numero = int.Parse(Console.ReadLine());
int fatorial = numero;
for (int i = numero - 1; i > 1; i--) {
fatorial *= i;
}
Console.WriteLine("Valor total do fatorial: " + fatorial);
Console.Read();
}Conversão de Temperatura
Classe para conversão bidirecional entre escalas termométricas Celsius e Fahrenheit:
class Program {
static void Main(string[] args) {
temperatura p = new temperatura(); // Criação do Objeto "p"
float celsius, faren;
Console.WriteLine("Digite a temperatura em Celsius:");
celsius = float.Parse(Console.ReadLine());
faren = p.cpf(celsius);
Console.WriteLine("Temperatura em Fahrenheit: " + faren);
Console.WriteLine("Digite a temperatura em Fahrenheit:");
faren = float.Parse(Console.ReadLine());
celsius = p.fpc(faren);
Console.WriteLine("Temperatura em Celsius: " + celsius);
Console.ReadKey();
}
}
class temperatura {
public float cpf(float t) {
float f = 9 * t / 5 + 32;
return f;
}
public float fpc(float t) {
float c = (t - 32) * 5 / 9;
return c;
}
}Verificação de Par ou Ímpar
Algoritmo para determinar a paridade de um número inteiro:
class Program {
static void Main(string[] args) {
int x;
Console.Clear();
Console.WriteLine("\n\tDigite um número inteiro:");
x = int.Parse(Console.ReadLine());
if (x % 2 == 0) {
Console.WriteLine("\nO número é par");
} else {
Console.WriteLine("\nO número é ímpar");
}
Console.ReadKey();
}
}Preenchimento de Matriz Bidimensional
Exemplo de leitura e preenchimento de uma matriz bidimensional 5x5:
int[,] bingo = new int[5, 5];
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
Console.WriteLine(String.Format("Informe o elemento ({0},{1}):", i, j));
bingo[i, j] = int.Parse(Console.ReadLine());
}
}