


Программирование
+4Программа на Java
Вам необходимо написать программу на языке Java, которая реализует поиск индекса последнего вхождения элемента с использованием алгоритма бинарного поиска. Считайте, что вы работаете с уже отсортированным массивом целых чисел.
Программа должна выводить в консоль по результатам работы найденный индекс последнего вхождения элемента или сообщение об отсутствии элемента в массиве.
По дате
По рейтингу
Примерно так (код на C#, на жабе будет что-то очень похожее):
1234567891011121314151617181920212223
public static int FindLastIdx<T>(T[] _Data, int _Start) where T: IEquatable<T>
{
int n = _Start;
while (n < _Data.Length && _Data[n].Equals(_Data[_Start]))
n++;
return --n;
}
public static int? BinSearch<T>(T[] _Data, T _Value, int _StartIdx, int _EndIdx) where T: IComparable, IEquatable<T>
{
if (_StartIdx == _EndIdx || _Data[_StartIdx].Equals(_Value) || _Data[_EndIdx].Equals(_Value))
{
if (_Data[_StartIdx].Equals(_Value))
return FindLastIdx(_Data, _StartIdx);
if (_Data[_EndIdx].Equals(_Value))
return FindLastIdx(_Data, _EndIdx);
return null;
}
int Middle = (_StartIdx + _EndIdx) >> 1;
if (_Data[Middle].CompareTo(_Value) > 0)
return BinSearch(_Data, _Value, _StartIdx, Middle);
return BinSearch(_Data, _Value, Middle, _EndIdx);
}
какое отношение к javascript
Я пишу на java только игры.