バイナリ検索に似ているようですが、例外はありますが のアルゴリズムを記述する必要があります。バイナリサーチは、ソートされた配列の値の変化を見つけるアルゴリズムと同じです。
問題: 整数の配列が与えられていると、値が変更されるインデックスを見つける必要があります。
仮定: あり、アレイ内の唯一の2つの値があるので、我々はたったの約 それは一度値を変更を心配する必要があります。 (例えば、使用0
と100
以下の実施例)
例(S):
[0,0,0,0,100,100,100,100,100,100,100,100,100,100] //search would return 4
[0,0,0,0,0,0,0,0,100,100,100,100,100,100] //search would return 8
[0,0,0,0,0,0,0,0,0,0,0,0,0,100] //search would return 13
説明:
ていない宿題の問題。私は、2週間にわたるアイテムの価格の変化に対応するソートされた配列 の日付を計算しなければならない問題があります。それらの日付の最後に価格 が異なる場合は、 価格が変更された正確な日を効率的に探したいと思います。
方法は、単にこれは、バイナリサーチのちょうど変化であるフォーマット
public int FindChangeIndex(int[] input){
int changeIndex = -1
//use efficient binary-search
//like algorithm to find change index
return changeIndex;
}
「A TheJediCowboy
@TheJediCowboy実際には、「A < B' or 'A > B」は、このアルゴリズムには何の効果もありません。入力が2つに分割されている限り、正しく動作します。 –
バイナリ検索A