En büyük elemanın bulunduğu yeri bulmakta güçlük çekiyorum. Dizideki elemanların X [r] ile erişilebildiğini biliyorum, burada r indeks ve burada yaptığım şeydi, ama sadece indeksi elde edemiyorum.Maksimum elemanın endeksini bulun
Kodu:
O varpublic class Max {
public static void main(String[] args) {
int[] B = {-1, 2, 6, 3, 9, 2, -3, -2, 11, 5, 7};
System.out.println("max = " + maxArrayIndex(B, 0, B.length-1));
}
static int maxArrayIndex(int[] X, int p, int r) {
int q = 0;
if(p < r) {
q = (p + r)/2;
int maxLeft = maxArrayIndex(X, p, q);
int maxRight = maxArrayIndex(X, q+1, r);
int maxFinal = max(maxLeft, maxRight);
return maxFinal;
}
return X[r];
}
static int max(int p , int r) {
int maxIndex = 0;
if(p > r) {
maxIndex = p;
} else {
maxIndex = r;
}
return maxIndex;
}
}
Hata ayıklayıcısını kullanın, bunun için ne yapıldığını öğrenin. – redFIVE
@Arkbros, maxArrayIndex() ve max() işlevlerinde, endeksi bir yere almadığınız için diğer tarafın max (maxLeft ve maxRight) değerleriyle karşılaştırılmak üzere maksimum değeri döndürdüğünüzden bahseder. Endeks – ElAwDk
maxArrayIndex döndürülmediğinde max ve max max parametrelerini ve maxIndex parametrelerini isimlendirirken kendinize kafa karıştırıyorsunuz X dönüşü r [r]; – Chris