Merge sort: diferenças entre revisões
Conteúdo apagado Conteúdo adicionado
→Código em C: Eliminada redundancia de operador. |
|||
Linha 182:
=== Implementação em C++ ===
<syntaxhighlight lang="c++">
void merge(int *saida, int *auxiliar, int inicio, int meio, int fim)
i++;
}
else{
j++;
}
k++;
}
void mergeSort(int *array, int *auxiliar, int inicio, int fim)▼
i++;
if(inicio < fim)▼
k++;
}
int meio = (inicio + fim) / 2;▼
mergeSort(array, auxiliar, inicio, meio);▼
mergeSort(array, auxiliar, meio + 1, fim);▼
j++;
merge(array, auxiliar, inicio, meio, fim);▼
k++;
}
//Copia os elementos que foram ordenados para o auxiliar
for(int p = inicio; p <= fim; p++)
auxiliar[p] = saida [p];
}
▲ int i, j, k;
▲ i = inicio;
▲ j = meio + 1;
▲ k = inicio;
▲ while(i <= meio && j <= fim)
▲ if(auxiliar[i] < auxiliar[j])
▲ array[k] = auxiliar[i];
}
▲ array[k] = auxiliar[j];
▲ while(i <= meio)
▲ array[k] = auxiliar[i];
▲ while(j <= fim)
▲ array[k] = auxiliar[j];
}
</syntaxhighlight>Outra implementação em [[C++]]:<syntaxhighlight lang="c++" line="1">
|