Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программа на Java

Егор Корчагин Корчагин Ученик (106), закрыт 1 месяц назад
Вам необходимо написать программу на языке Java, которая реализует поиск индекса последнего вхождения элемента с использованием алгоритма бинарного поиска. Считайте, что вы работаете с уже отсортированным массивом целых чисел.
Программа должна выводить в консоль по результатам работы найденный индекс последнего вхождения элемента или сообщение об отсутствии элемента в массиве.
Лучший ответ
Jurijus Zaksas Искусственный Интеллект (429032) 1 месяц назад
Примерно так (код на C#, на жабе будет что-то очень похожее):

 public static int FindLastIdx(T[] _Data, int _Start) where T: IEquatable 
{
int n = _Start;
while (n < _Data.Length && _Data[n].Equals(_Data[_Start]))
n++;
return --n;
}

public static int? BinSearch(T[] _Data, T _Value, int _StartIdx, int _EndIdx) where T: IComparable, IEquatable
{
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);
}
Остальные ответы
Alpha8041 Просветленный (39312) 1 месяц назад
Я пишу на java только игры.
Jurijus ZaksasИскусственный Интеллект (429032) 1 месяц назад
Тогда это задание для тебя - плевое дело. Давай, дерзай.
Похожие вопросы