Olá preciso fazer uma busca heurística, onde a ideia é pegar o primeiro menor valor e comparar com o próximo valor, se o proximo for maior que o valor atual ele pega esse valor como o menor.
No exemplo abaixo, o valor mais baixo que ele deveria encontrar seria o "-4" pois o -4 é menor que o -2 e o proximo valor de -4 é o 0 que é maior que -4, seria isso... Alguma ideia?
http://i64.tinypic.com/x2rw3q.png
https://www.clubedohardware.com.br/uploads/monthly_2019_04/ed222.png.199206a64b431f25b1f7e63f6eaa341f.png
#include<stdlib.h>
#include<stdio.h>
int main(void){
int i,j;
int matriz[20][20];
int ponto=0, pontoAnt=0, pontoProx=0;
int maior=0,menor=0;
int a=0,b=0,c=0,d=0;
int linha=20;
//zerando valores na matriz
for(i=0;i<20;i++){
for(j=0;j<20;j++){
matriz[i][j]=0;
}
}
//gerar valores 1 baixo
for(i=0;i<2;i++){
for(j=13;j<15;j++){
matriz[i][j]=-2;
}
}
//gerar valores 1 alto
for(i=1;i<6;i++){
for(j=8;j<13;j++){
matriz[i][j]=3;
}
}
for(i=2;i<5;i++){
for(j=9;j<12;j++){
matriz[i][j]=6;
}
}
//gerar valores 2 baixo
for(i=5;i<10;i++){
for(j=0;j<5;j++){
matriz[i][j]=-2;
}
}
for(i=6;i<9;i++){
for(j=1;j<4;j++){
matriz[i][j]=-4;
}
}
//gerar valores 2 alto
for(i=5;i<11;i++){
for(j=14;j<20;j++){
matriz[i][j]=2;
}
}
for(i=6;i<10;i++){
for(j=15;j<19;j++){
matriz[i][j]=4;
}
}
for(i=7;i<9;i++){
for(j=16;j<18;j++){
matriz[i][j]=8;
}
}
//gerar valores 3 baixo
for(i=10;i<15;i++){
for(j=5;j<10;j++){
matriz[i][j]=-1;
}
}
for(i=11;i<14;i++){
for(j=6;j<9;j++){
matriz[i][j]=-5;
}
}
//gerar valores 4 baixo
for(i=13;i<20;i++){
for(j=14;j<20;j++){
matriz[i][j]=-1;
}
}
for(i=14;i<19;i++){
for(j=15;j<19;j++){
matriz[i][j]=-3;
}
}
for(i=15;i<18;i++){
for(j=16;j<18;j++){
matriz[i][j]=-6;
}
}
//valores da matriz principais
matriz[0][14]=-4;
matriz[3][10]=8;
matriz[7][2]=-8;
matriz[7][17]=9;
matriz[12][7]=-7;
matriz[16][16]=-9;
matriz[18][4]=3;
//mostrar matriz
for(i=0;i<20;i++){
for(j=0;j<20;j++){
if(matriz[i][j] < 0){
printf("%d ",matriz[i][j]);
}else{
printf(" %d ",matriz[i][j]);
}
}
printf("\\n");
}
printf("\\n-----------------------------------------------------------");
//busca heuristica
for(i=0;i<20;i++){
for(j=0;j<20;j++){
if (i == 0 && j == 0){
menor=matriz[0][0];
maior=matriz[0][0];
}
if(maior<matriz[i][j]){
maior=matriz[i][j];
if(ponto < pontoAnt && ponto < pontoProx){
ponto=maior;
pontoAnt=matriz[i][j];
pontoProx=matriz[i][j];
}
a=i+1; //valor coluna
b=j+1; //valor linha
}
if(menor>matriz[i][j]){
menor=matriz[i][j];
c=i+1; //valor coluna
d=j+1; //valor linha
}
}
}
printf("\\n\\n* Busca Heuristica");
printf("\\n-> Valor mais baixo: (%d) -> Coluna: [%d], Linha: [%d] -> Passos: {%d}",ponto,c,d);
return 0;
}