0
整数配列の再帰的バイナリ検索アルゴリズムを昇順でソートする必要があります(例:1,2,3,4...
)。どのように再帰バイナリ検索アルゴリズムを実装するには?
私が持っている配列は、以下の数値が含まれています
0 0 0 0 0 0 0 1 2 2 3 3 3 3 5 6 7 7 7 9
しかし、バイナリサーチの私の現在の実装では唯一、それが9を見つけることができませんが、何らかの理由で3の右側に番号を見つける7 、6、および以下の5
が私のコードです:
private int srchHelper(int[] array, int first, int last, int x) {
if (first > last) return - 1;
int mid = (first + last)/2;
if (array[mid] == x) {
return mid;
}
if (array[mid] < x) {
return srchHelper(array, (mid + 1), last, x);
}
else return srchHelper(array, (mid - 1), last, x);
}
昨日この質問を見て、約3人が正解とコメントしました。 –
もしあなたが左に行きたいのであれば、あなたの 'int first'は' mid'ではなく 'most'オプション(' first')でなく、 'mid'と' last'ではなく最初に行く? – Ceelos
@PaulBoddingtonあなたはその質問へのリンクを持っていますか、これを重複としてマークしていますか? –