Как я могу реализовать ключевую для уменьшения функциональность в heapq Python?

Это - вход в систему Windows, не вход в систему SQL Server, таким образом, Вы не можете 'изменить' имя для входа в систему, так как оно связано с учетной записью пользователя в Active Directory.

Создают новый Вход в систему Сервера (Windows), отображенный на новом пользователе Windows (и удалите старый при необходимости). Тогда в безопасности входа в систему> Пользователь, Отображающийся, разрешение, которые входят в систему к соответствующей базе данных как пользователь 'dbo' (или присваивают db_owner роли)

35
задан 23 September 2009 в 12:23
поделиться

1 ответ

Для эффективной реализации «клавиши уменьшения» вам потребуется доступ к функции «уменьшить этот элемент и поменять местами этот элемент с дочерним, пока не будет восстановлено состояние кучи». В heapq.py это называется _siftdown (и аналогично _siftup для INcrementing). Итак, хорошая новость заключается в том, что функции есть ... Плохая новость в том, что их имена начинаются с подчеркивания, что указывает на то, что они считаются «внутренними деталями реализации» и не должны быть доступны напрямую из кода приложения (следующий выпуск стандартная библиотека может изменить ситуацию и сломать код, используя такие "внутренние компоненты").

Вам решать, хотите ли вы игнорировать предупреждение, ведущее - _ , используйте O (N) heapify вместо O (log N) просеивания, или переопределите некоторые или все функции heapq, чтобы сделать примитивы просеивания «открытыми как общедоступные части интерфейса». Поскольку структура данных heapq документирована и общедоступна (просто список), я думаю, что лучшим выбором, вероятно, будет частичная повторная реализация - по сути, скопируйте функции просеивания из heapq.py в код вашего приложения.

35
ответ дан 27 November 2019 в 07:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: