2016-04-24 13 views
0

私のコードが機能しません、私は降順の配列でバイナリ検索することができますしたいです。降順の配列でバイナリ検索する方法はありますか?

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; 

} 

何が問題なのか、何が見えないのですか?

+1

[Javaでソート(メモリマップド?)ファイルでのバイナリ検索](の可能性のある重複http://stackoverflow.com/questions/736556/binary-searchでx場合に返されます-in-a-sorted-memory-mapped-in-java) – pczeus

答えて

1

代わりにfollを試してください。

アサンプション:、j= endxは、検索しようとしている要素です。 Foll-1ない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

ああ!私は答えを受け入れる。 –

関連する問題