Ir para conteúdo
Fórum Script Brasil

Pesquisar na Comunidade

Mostrando resultados para as tags ''mergesort''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Encontrado 2 registros

  1. Boa noite gostaria de uma ajuda só pra comentar este código sobre MergeSort, fiz algumas linhas mas não entendi muito bem como funciona as que deixei sem comentar, se alguém puder ajudar eu agradeço desde já. Caso eu tenha comentado algo errado me corrijam, obrigado #include<stdio.h> void intercalar (int v[],int aux[],int ini1, int ini2,int fim2) //funcao de intercalacao para organizar o vetor { int in1=ini1,in2=ini2,fim1=in2-1,au=0,i; //definicao das variaveis como inteiro while(in1<=fim1 && in2<=fim2) //definicao dos valores de cada lado do vetor { if (v[in1]<v[in2]) { aux[au++] = v[in1++]; } else { aux[au++] = v[in2++]; } } while(in1<=fim1) { aux[au++] = v[in1++]; } while(in2<=fim2) { aux[au++] = v[in2++]; } for(i=0;i<au;i++){ v[i+ini1]=aux[i];} } void mergeSort (int v[], int aux[],int esq, int dir) //funcao que executa o processo MergeSort { int meio,i; if(esq<dir) { meio=(esq+dir)/2; //calcula o meio do vetor mergeSort(v,aux,esq,meio); //iteracao do MergeSort para o lado esquerdo do vetor mergeSort(v,aux,meio+1,dir); //iteracao do MergeSort para o Lado direito do vetor intercalar(v,aux,esq,meio+1,dir); //faz a chamada da funcao intercalar } } int main() { int v[10]={4,2,10,8,9,3,7,5,6,1},aux[10],i; //vetor de entrada dos dados de forma aleatoria, vetor auxiliar, controle mergeSort(v,aux,0,9); // chamada da funcao for(i=0;i<10;i++) //loop para exibir o resultado já ordenado { printf("%d\t",v[i]); } return 0; }
  2. Olá amigos, boa tarde! Abaixo descrevo o código que tenho que faz a ordenação de um vetor pelo método de MergeSort. Meu problema é que preciso retornar no main o número de inversões do processo. Na verdade eu não sei como identificar as inversões e também tenho problemas com recursividade. Segue o código abaixo e desde já fico agradecido. Qualquer informação será bem vinda! #include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> void Intercala (int p; int q; int r; int v[]) { int i, j, k, *w; w = malloc ((r-p) * sizeof (int)); i = p; j = q; k = 0; while (i < q && j < r) { if (v[i] <= v[j]) w[k++] = v[i++]; else w[k++] = v[j++]; } while (i < q) w[k++] = v[i++]; while (j < r) w[k++] = v[j++]; for (i = p; i < r; i++) v[i] = w[i-p]; free (w); } void Mergesort (int p; int r; inr v[]) { if (p < r-1) { int q = (p + r)/2; Mergesort (p, q, v); Mergesort (q, r, v); Intercala (p, q, r, v); } } int main() { int t, i, n, j; scanf("%d", &t); for (i=0; i<t; i++) { scanf("%d", &n); int a[n], inversoes = 0; for (j=0; j<n; j++) { scanf("%d", &a[j]); } printf("\n"); Mergesort (0, n, a); printf("%d\n", inversoes); } return 0; }
×
×
  • Criar Novo...