C e C++

Primeiro mês de aula e cá estamos com nossa primeira atividade avaliativa. A atividade consta na construçao de um menu de opções para prepararmos nosso ambiente para ordenar um vetor de N posições usando os algoritmos de ordenaçao de Inserção e Bolha. Além disso, temos como tarefa medir o tempo de execução desses algoritmos, e produzir uma análise de qual dos dois algoritmos testados é mais eficiente. Então os passos são os seguintes:

01 - Fazer um menu que possua as seguintes opções:

Menu de opções
01 - Preencher vetor de 500 posições com 500 elementos aleatórios;
02 - Ordenar e imprimir o vetor com o metodo da Bolha;
03 - Ordenar e imprimir o vetor com o método de Inserção;
04 - Comparar e imprimir tempo de execução dos dois métodos;
05 - Sair.

Opção: [ ]

Requisitos do programa:
a) Criar função para ordenação e impressão no método bolha e inserção;
–> funcao ordenaBolha e funcao ordenaInsercao
b) Usar a funçao clock() do c++ para medir o tempo de execução do programa;

c) Criar função para preencher o vetor de 500 posiçoes.
–> Usar a funçao rand() do c++ para preenchimento aleatório.

O que você já fez? Qual é a dúvida?

Olá, eu tentei fazer, fiz em C tem algum problema?

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define MAX 500

void popularVetor(int *vetor){
    int i;
    for(i = 0; i < MAX; i++){
        vetor[i] = rand() % MAX;
    }
}

int imprimirVetor(int *vetor){
    int i;
    for(i = 0; i < MAX; i++){
        printf("\n%d", vetor[i]);
    }
}

void ordenaBolha(int *vetor)
{
 int i, j, tmp;
 
  for(i = 0; i < MAX; i++)
  {
   for(j = i+1; j < MAX; j++)
   {
    if(vetor[j] < vetor[i])
    {
     tmp = vetor[i];
     vetor[i] = vetor[j];
     vetor[j] = tmp;
    }
  }
 }
 imprimirVetor(vetor);
}

void ordenaInsercao(int *vetor)
{    
  int i, j, aux; 
 
  for(i = 1; i > MAX; i++){ 
    j = i; 
 
    while((j != 0) && (vetor[j] > vetor[j - 1])) { 
      aux = vetor[j]; 
      vetor[j] = vetor[j - 1]; 
      vetor[j - 1] = aux; 
      j--;     
    } 
  } 
 imprimirVetor(vetor);
}

int main() {
    int op, vetor[MAX], i;
    time_t t;
    clock_t start_t_inser, end_t_inser, total_t_inser, start_t_bolha, end_t_bolha, total_t_bolha;
    
    srand((unsigned) time(&t));
    
    do{
        printf("\n01 - Preencher vetor de 500 posições com 500 elementos aleatórios"
    "\n02 - Ordenar e imprimir o vetor com o metodo da Bolha"
    "\n03 - Ordenar e imprimir o vetor com o método de Inserção"
    "\n04 - Comparar e imprimir tempo de execução dos dois métodos"
    "\n05 - Sair"
    "\nEscolha uma das opcoes listadas a cima:"
    );
    scanf("%d", &op);
    
    switch (op){
        case 1:
            popularVetor(vetor);
            break;
        case 2:
            start_t_bolha = clock();
            ordenaBolha(vetor);
            end_t_bolha = clock();
            total_t_bolha = (double)(end_t_bolha - start_t_bolha);
            break;
        case 3:
            start_t_inser = clock();
            ordenaBolha(vetor);
            end_t_inser = clock();
            total_t_inser = (double)(end_t_inser - start_t_inser);
            break;
        case 4:
            if(total_t_bolha > total_t_inser)
                printf("Metodo insercao foi mais rapido");
            else
                printf("Metodo bolha foi mais rapido");
            break;
        case 5:
            return 0;
            break;
        default:
            return 0;
            break;
    }
    }while(op != 5);
    
    return 0;
}

Se tiver algo de errado é só me dizer que eu te ajudo

Na realidade a ideia é sempre ajudar a esclarecer as dúvidas, para ajudar no processo de crescimento e aprendizagem das pessoas.
:wink:

Já viu a quantidade imensa de pessoas que vêm aqui e só postam os enunciados de suas questões? (Ou, como no caso, de uma prova!)