em java como verificar se um vetor esta em ordem crescente, decrescente ou ordenado?
Soluções para a tarefa
int vet[] = {1, 2, 3, 4, 5}; //Testar com 5, 4, 3, 2, 1 e 1, 2, 3, 5, 4
x = vet[0];
if (vet.length > 1) { //*ponto crítico aqui*
if (x >= vet[1])
status = -1;
else
status = 1;
}
for (int i = 0; i < vet.length; i++) {
if (x <= vet[i] && status == 1) {
x = vet[i];
continue;
} else if (x >= vet[i] && status == -1) {
x = vet[i];
continue;
} else {
status = 0;
break;
}
}
O que algoritmo faz?
Ele basicamente compara o vet[i - 1] (com i > 0) com vet[i] para ver se o elemento anterior foi menor ou maior que o atual e confere o status da ordem (1 = crescente até o momento, -1 = decrescente até o momento). Se o status muda, então é porque está desordenado.
Precisa delimitar o tamanho o vetor. Porque se o tamanho dele é igual a 1, não podemos afirmar que está ordenado ou desordenado. Em todo caso, meu algoritmo assume desordenado.
O código a seguir verifica se a ordem é crescente, decrescente ou ordenado?
int x, status = 0;
int vet[] = {1, 2, 3, 4, 5}; //Testar com 5, 4, 3, 2, 1 e 1, 2, 3, 5, 4
x = vet[0];
if (vet.length > 1) { //*ponto crítico aqui*
if (x >= vet[1])
status = -1;
else
status = 1;
}
for (int i = 0; i < vet.length; i++) {
if (x <= vet[i] && status == 1) {
x = vet[i];
continue;
} else if (x >= vet[i] && status == -1) {
x = vet[i];
continue;
} else {
status = 0;
break;
}
}
Programação
A função do algorítimo a seguir é comparar o vetor vet[i - 1] (com i > 0) com vet[i] , de forma que verifica:
- o elemento anterior é menor ou maior que o atual
- analisa o status da ordem do momento, onde:
- 1 = crescente
- -1 = decrescente
O código que verifica verificar se um vetor está em ordem crescente, decrescente ou ordenado é:
int x, status = 0;
int vet[] = {1, 2, 3, 4, 5};
//Testar com 5, 4, 3, 2, 1 e 1, 2, 3, 5, 4
x = vet[0];
if (vet.length > 1) { //*ponto crítico aqui*
if (x >= vet[1])
status = -1;
else
status = 1;
}
for (int i = 0; i < vet.length; i++) {
if (x <= vet[i] && status == 1) {
x = vet[i];
continue;
} else if (x >= vet[i] && status == -1) {
x = vet[i];
continue;
} else {
status = 0;
break;
}
}
Aprenda mais sobre programação em: https://brainly.com.br/tarefa/29253823