Бинарный поиск правой границы c#

189
04 июня 2022, 20:10

Нужно написать эффективную программу бинарного поиска поиска правой границы в упорядоченном массиве. Программа должна удовлетворять условиям: Функция должна быть НЕ рекурсивной и работать за O(log(items.Length)*L), где L — ограничение сверху на длину фразы. Я сделал алгоритм, который не справляется с быстрым решением.

using System;
using System.Collections.Generic;
using System.Linq;
namespace Autocomplete
{
    public class RightBorderTask
    {
        public static int GetRightBorderIndex(IReadOnlyList<string> phrases, string prefix,
            int left, int right)
        {
            for (var i = 0; i < phrases.Count - 1; i++)
            {
                var m = (right + left) / 2;
                if (string.Compare(prefix, phrases[m], StringComparison.OrdinalIgnoreCase) == 0)
                    return m + 1;               
                
                if (string.Compare(prefix, phrases[m], StringComparison.OrdinalIgnoreCase) >= 0)
                {
                    left = m;
                    i = left;
                }
                
                else right = m; 
            }
            
            if (phrases[right - 1] == prefix)
                return right;
            return phrases.Count - 1;
        }
    }
}
READ ALSO
Как превратить поле точек в GraphicsPath

Как превратить поле точек в GraphicsPath

Вопрос скорее не из программирования, а из алгоритмов

267
Предусмотреть в программе возможность завершения работы, если пользователь не активен в течении определенного времени. WPF,C#

Предусмотреть в программе возможность завершения работы, если пользователь не активен в течении определенного времени. WPF,C#

Как реализовать метод, который отслеживает активность окна WPF C#? Задача стоит следующая, необходимо предусмотреть возможность программы...

187
Не могу передать массив в другой класс

Не могу передать массив в другой класс

Есть класс наследующий от родительского, в родительском есть массив, который имеет get; set; Однако в дочернем классе он заполняется, а в родительском...

288
Выходит из авторизации пользователя через 5 минут

Выходит из авторизации пользователя через 5 минут

Возникает проблема, что после авторизации через 5 минут пропадает авторизация, в startup:

159