Naheliegenster Wert finden in Array

MariusMeier

Mitglied
Hallo zusammen

Kennt jemand eine Funktion in Java, die mir anhand eines Wertes den naheliegensten Wert im Array sucht? Beispiel:

res=1.854

array_liste[] = {1.0,1.1,1.2,1.3,1.5,1.6,1.8,2.0,2.2,2.4,2.7,3.0,3.3,3.6,3.9,4.3,4.7,5.1,5.6,6.2,6.8,7.5,8.2,9.1}

res wird auf hunderstel gerundet => 1.85
Naheliegenster Wert wäre von der Array_liste 1.8

MFG Marius Meier
 

zerix

Hausmeister
Moderator
Hallo,

es gibt keine fertige funktion. Da wirst du dir selbst was schreiben müssen.

MFG

Sascha
 

TheJadix

Erfahrenes Mitglied
Hi

Du durchläufst am besten in einer Schleife dein Array
bildest zu jedem Element die Differenz zu dem vorgegebenen Wert.

Ist dabei die Differenz höher (Absolutwert) als beim vorherigen Versuch
ist der Vorgänger auch der am dichtesten liegende Wert im Array !
(Sortiertes Array vorausgesetzt !)

Dann brichst du die Schleife ab und hast deinen Index !

Gruß JAdix
 
Zuletzt bearbeitet:

xxTejaxx

Mitglied
Java:
    double res = 1.85;
    double[] arr = {1.0,1.1,1.2,1.3,1.5,1.6,1.8,2.0,2.2,2.4,2.7,3.0,3.3,3.6,3.9,4.3,4.7,5.1,5.6,6.2,6.8,7.5,8.2,9.1};
    double dif;
    int i = arr.length;
    int stelle = 0;
    dif = Math.abs(res-arr[0]);
    for (int j = 1; j < i;  j++ ){
        if ( (Math.abs(res-arr[j]) < dif) ){
            dif = Math.abs(res-arr[j]);
            stelle = j;
        }
am ende steht also in "stelle" drinnen, welcher array eintrag deinem ref am naechsten liegt