2016-04-24 17 views
0

Mein Code funktioniert nicht, ich möchte binäre Suche in einem Array, das in absteigender Reihenfolge ist.Wie binäre Suche in einem Array in absteigender Reihenfolge?

static int searchDescendingGT(double[] a, int i, int j, double x) 
{ 
    while(i!=j){ 
    // | >x | unknown | >=x | 
     int m = i+(j-i)/2; 

     if (a[m]<x){ 
     j = m; 
     } 
     else{ 
     i = m+1; 
     } 
    } 
    return i; 

} 

Was könnte es sein, Probleme und was sehe ich nicht?

+1

Mögliche Duplikat [Binäre Suche in einer sortierten (memory-mapped?) Datei in Java] (http://stackoverflow.com/questions/736556/binary-search -in-a-sortierte-speicherkarten-file-in-java) – pczeus

Antwort

1

Versuchen Sie stattdessen foll.

Annahme: a ist Ihr Array, i = start, j= end, x ist das Element, das Sie zu finden versuchen. Foll kehrt -1 wenn x nicht in a

static int searchDescendingGT(double[] a, int i, int j, double x) { 
    while (i <= j) { 

     int m = (i + j)/2; 

     if (a[m] == x) { 
      return m; 
     } else if (a[m] < x) { 
      j = m - 1; 
     } else { 
      i = m + 1; 
     } 
    } 
    return -1; 

} 
+0

Ah! Ich akzeptiere die Antwort. –

Verwandte Themen