Ir ao conteúdo

Posts recomendados

Postado

Boa noite!

Estou fazendo um trabalho em C onde preciso inserir um vetor de tamanho X e rodar os algoritmos de ordenação. 

Até agora está tudo certo, ta ordenando e imprimindo o tempo, mas preciso inserir um contador em cada um para imprimir o numero de iterações feitas até o vetor ser ordenado....

Alguém pode me ajudar? Eu não sei onde colocar esse contador

 

Um trecho do código

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define TAM 1000
/*=======================VETOR_RANDOMIZADO========================================*/
void randomiza(int vet[],int num){
     int i;
     srand(time(NULL));
        printf("Vetor em Ordem Randomica\n");
        for (i=0; i<TAM; i++)
        {
                vet=rand() % TAM;
        }
}
 
/*=====================QUICK_SORT==================================================*/
void ordena_quick(int vet[], int esquerda, int direita){
    int i, j;
    int x, y;
    i=esquerda; j=direita;
    x=vet[(esquerda+direita)/2];/*gera a media dos valores para escolher o pivo*/
 
  do
  {
    while(vet<x && i<direita)
    i++;
         while(x<vet[j] && j>esquerda)
     j--;
     if(i<=j)
     {
         y=vet;
         vet=vet[j];
         vet[j]=y;
         i++;
         j--;
     }
 
   }while(i<=j);
 
    if(esquerda<j)
    ordena_quick(vet, esquerda, j);
           if(i<direita)
           ordena_quick(vet, i, direita);
}
void imprime_quick(int vet[],int num){
     int i=0;
     printf("\nORDENADO PELO METODO QUICKSORT:\n");
     while (i<num)
    {
           printf("%d ",vet);
            i++;
    }
}
 
/*=======================SELECTION_SORT============================================*/
void ordena_selection(int vet[], int num){
     int menor, i=0, y, aux;
     while (i<num)
    {
            menor=vet;
            y=i+1;
            while (y<num)
        {
                    if (vet[y] < menor)
            {
                                  aux = vet[y];
                                  vet[y] = menor;
                                  menor = aux;
                        }
                     y++;
                 }
           vet=menor;
           i++;
       }
}
int  imprime_selection(int vet[],int num){
     int i=0;
     printf("\nORDENADO PELO METODO SELECTION:\n");
     while (i<num)
     {
            printf("%d ",vet);
            i++;
        }
}
 

  • Curtir 1
Postado

@Bianca Lima Se não me engano, as iterações são os 'ciclos' dos loops, então quando você usa:

while(i < MAX){ i++; }

i seria o contador de iterações até o condicional finalizar o loop.

 

Vendo seu código, basta imprimir o i  nas funções, antes de retornar para main.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!