Pesquisar neste blog

07/08/2017

Ordenação de Matriz em Linguagem C

#include <stdio.h>
#include <stdlib.h>
#define DIM 3 // TAMANHO DE CADA LINHA : para alterar o tamanho
//da matriz é só redefinir

/*Autor: Henrique
Data de Criação: 05/08/2017
Objetivo: Criar uma matriz Ordenada por Linha*/

//Função para ordenar de forma crescente
void OrdenacaoCrescente(int Mat[DIM]){
int i, j, aux;
for (i = 0; i < DIM-1; i++){
for (j = 0; j < DIM-1; j++){

if (Mat[j] > Mat[j+1]){
aux = Mat[j];
Mat[j] = Mat[j+1];
Mat[j+1] = aux;
}
}
}
for (i = 0; i <DIM; i++){//imprimindo a linha de forma ordenada
printf("%3d ", Mat[i]);
}
}

void OrdenaDecrescente(int Mat[DIM]){
int i, j, aux;
for (i = 0; i < DIM-1; i++){
for (j = 0; j < DIM-1; j++){

if (Mat[j] < Mat[j+1]){
aux = Mat[j];
Mat[j] = Mat[j+1];
Mat[j+1] = aux;
}
}
}
for (i = 0; i < DIM; i++){//Imprimindo a linha de forma decrescente
printf("%3d ", Mat[i]);
}
}


int main(){
int i, Matriz[DIM], Matriz2[DIM], Matriz3[DIM];

printf("DIGITE OS RESPECTIVOS VALORES INTEIROS PARA A MATRIZ \n\n");
for (i = 0; i < DIM; ++i){//Recebendo os valores para a Matriz da 1° linha
printf("Matriz de Posicao [1][%d]: ", (i+1));
scanf("%d", &Matriz[i]);
}
for(i = 0; i < DIM; ++i){//Recebendo os valorees para a Matriz da 2° linha
printf("\tMatriz de Posicao [2][%d]: ",(i+1));
scanf("%d", &Matriz2[i]);
}
for(i = 0; i < DIM; i++){//Receendo os valores para a Matriz da 3° linha
printf("\t\tMatriz de Posicao [3][%d]: ",(i+1));
scanf("%d", &Matriz3[i]);
}

system("cls");//Limpando a tela dos dados inseridos
printf("\n* * * * MATRIZ GERADA * * * *\n");
for(i = 0; i < DIM; i++){// Imprimindo a matriz de linha 1
printf("%3d ",Matriz[i]);
}
printf("\n");
for(i = 0; i < DIM; i++){// Imprimindo a matriz de linha 2
printf("%3d ", Matriz2[i]);
}
printf("\n");
for(i = 0; i < DIM; i++){// Imprimindo a matriz de linha 3
printf("%3d ", Matriz3[i]);
}


//Chamando a função crescente para cada etapa da linha
printf("\n\n---- MATRIZ DE ORDENACAO CRESCENTE ------\n");
OrdenacaoCrescente(Matriz);
printf("\n");
OrdenacaoCrescente(Matriz2);
printf("\n");
OrdenacaoCrescente(Matriz3);

//Chamando a função decrescente para cada etapa da linha
printf("\n\n---- MATRIZ DE ORDENACAO DECRESCENTE-----\n");;
OrdenaDecrescente(Matriz);
printf("\n");
OrdenaDecrescente(Matriz2);
printf("\n");
OrdenaDecrescente(Matriz3);

printf("\n\n");
return EXIT_SUCCESS;
}

04/08/2017

Ordenação Vetor em Linguagem C

#include <stdio.h>
#include <stdlib.h>
#define SIZE 5// tamanho do vetor

void troca(int X[], int i, int j){
int aux;
aux = X[i];
X[i] = X[j];
X[j] = aux;
}

int particao(int X[], int p, int r){
int pivo, i, j;
pivo = X[(p+r)/2];
i = p-1;
j = r +1;;
while(i < j){
do{
j = j -1;
}
while(X[j] > pivo);
do
{
i = i +1;
}
while(X[i] < pivo);
if(i < j){
troca(X, i, j);
}
}
return j;
}

void quicksort(int X[], int p, int r){
int q;
if(p < r){
q = particao(X, p, r);
quicksort(X, p, q);
quicksort(X, q+1, r);
}
}


int main (void){
int X[10];
int i;

for(i = 0; i <= SIZE; i++){
printf("Digite o numero da posicao [%d]: ",(i+1));
scanf("%d", &X[i]);
}

printf("\nOrdenando de forma crescente: \n");
quicksort(X, 0, SIZE);


for(i = 0; i <= SIZE; i++){
printf("%d ",X[i]);
}

printf("\n\n");
return EXIT_SUCCESS;
}