Binäre Suche in 2D -Array mit benutzerdefiniertem KomparatorJava

Java-Forum
Anonymous
 Binäre Suche in 2D -Array mit benutzerdefiniertem Komparator

Post by Anonymous »

Ich habe ein 2D -Integer -Array [n] [3] < /code> und einen Zielwert.
Ich sortiere das Array mit < /p>

Code: Select all

Arrays.sort(arr, (a,b)->Integer.compare(a[1],b[1]));
Wie kann ich Arrays.BinarySearch und einen benutzerdefinierten Comparator verwenden, um ARR entlang des Index 1 nach einem Zielwert zu durchsuchen? Etwas, das Folgendes ersetzen könnte: < /p>

Code: Select all

   int binSearch(int[][] arr, int target) {
int low=0, high=arr.length-1;
while( low < high ) {
int mid=(low+high)/2;
if( arr[mid][1] == target ) {
return i;
}
else if( arr[mid][1] < target {
low=mid+1;
}
else {
high=mid-1;
}
}
return -(low+1);
}
Bearbeiten: Arrays.sort funktioniert, wie ich es benötige, um - mein erstes Array beispielsweise {{1,3,5}, {7,1,6 }, {4,2,1}} sortieren den mittleren Wert auf {{7,1,6}, {4,2,1}, {1,3,5}}
Ich dachte, ich könnte einen ähnlichen Ausdruck für Arrays.BinarySearch schreiben, wobei jedes Element (1x3) des Arrays mit einer Zielgülle verglichen wird. So etwas wie: < /p>

Code: Select all

int idx = Arrays.binarySearch(arr, target, (a,b)->Integer.compare(a[1],b));
Ich kann nicht wirklich denselben Komparator wie in der Sortierung verwenden, da es sich um unterschiedliche Typen handelt - das Sucharray ist ein Array von 1x3 -Angumsgröße und mein Ziel ist ein einzeln ganze Zahl. Ich muss eine binäre Suche durchführen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post