Başlık size fazla spesifik gelebilir ama aslında problem biraz daha kapsamlı. Bu yapının nasıl çalıştığını anlamak, bir çok liste ve karşılaştırma mekanikleri açısından fazlasıyla yardımcı olacaktır. Ama sayı listeleriyle uğraşanların direk olarak bu yapıya da ihtiyaç duyabileceğini tahmin ediyorum. Bu sebeple çalışan tam bir program olarak bunu paylaşmak istedim. ( Umarım bildiğiniz üzere "//" ile başlayan kısımlar yorum kısımlarıdır, koda bir etkileri yoktur.)
import java.lang.Math; // Burada zorunlu bir kütüphane değil ama ileride ihtiyaç duyulabilir
// main() metodu içeren bir class ınız olmak zorundadır
public class Welcome{
public static void main(String[] args)
{
superFinder newProgram = new superFinder(); //superFinder class ını çağırıyorum
int[] list = {8,19,6,7,10,5,12,5,21}; //öylesine bir sayı listesi oluşturuyorum
int result = newProgram.findMin(list, 2, 6); //superFinder içindeki findMin metodunu 3 parametre vererek çağırıyorum
System.out.print(result); //sonucu yazdırıyorum
}
}
public class superFinder{
public int findMin(int[]A, int p, int q){
int minPos = p; //en düşük pozisyonu yazdıracağım değişken
for(int i = p; i <= q; i++){ //p den başlayıp q ya kadar öğeleri inceliyorum, ilk öğe tabii ki 0
if(A[i] < A[minPos]){ //bulduğum öğe daha önceki en küçük bulduğum öğeden düşük mü diye bakıyorum
minPos = i; //öyle ise yeni en düşük öğeyi o yapıyorum
}
}
return minPos; //en düşük öğenin kendisini değil pozisyonunu geri döndürüyorum
}
}
Programı main() metodundan sonra yazmam bir şey değiştirmiyor çünkü Java, her şeyi okuyup öyle çalışıtıyor kodumu. Dikkat edileceği üzere sonuç olarak bulduğum en küçük sayıyı değil onun listede bulunduğu yeri döndürüyorum. İsterseniz main() içindeki sonuç kısmını "System.out.print(list[result]);" diye değiştirerek sayının kendisini de döndürebilirsiniz.