Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
#include <cstdlib> #include <iostream> using namespace std; void merge(int vetor[], int inicio, int meio, int fim){ int tamanho = fim - inicio + 1; int i, j, k, posicao; int temp[tamanho]; for (i=inicio; i<=fim; i++) { temp[i] = vetor[i]; } for (i=inicio, j=meio+1, posicao=inicio; (i <= meio) && (j <= fim); posicao++) { if(temp[i]<temp[j]){ vetor[posicao] = temp[i]; i ++; } else{ vetor[posicao] = temp[j]; j++; } } if(i == meio+1){ for(k=j; k<=fim; k++){ vetor[posicao] = temp[k]; posicao++; } } else { for(k=i; k<=meio; k++){ vetor[posicao] = temp[k]; posicao++; } } } void mergeSort(int v[], int esq, int dir){ int meio; if(dir>esq){ meio = (dir+esq)/2; mergeSort(v, esq, meio); mergeSort(v, meio+1, dir); merge(v, esq, meio, dir); } } int main(int argc, char *argv[]) { int vetor[5]={12,2,24,1,13},i; mergeSort(vetor,0,5); for(i=0;i<5;i++) cout<<vetor[i]<<" "; cout<<endl; system("PAUSE"); return EXIT_SUCCESS; }
Compartilhar