Как добавить модель клавиатуры в Ubuntu и вернуть эту модель сообществу?

Алгоритм Кучи, вероятно, не является ответом на какой-либо разумный вопрос интервью. Существует гораздо более интуитивный алгоритм, который будет производить перестановки в лексикографическом порядке; хотя он амортизируется O (1) (за перестановку) вместо O (1), на практике он не заметно медленнее, и его намного легче вывести на лету.

Алгоритм лексикографического порядка чрезвычайно просто описать. Для некоторой перестановки найдите следующую:

  1. Поиск самого правого элемента, который меньше, чем элемент справа.
  2. Смените этот элемент с наименьшим элементом на его
  3. Переверните часть перестановки справа от того, где был этот элемент.

Оба этапа (1) и (3) являются в худшем случае O (n), но нетрудно доказать, что среднее время для этих шагов равно O (1).


Индикация того, как сложный алгоритм Кучи (в деталях) заключается в том, что ваше выражение это немного неправильно, потому что он делает один дополнительный обмен; дополнительный swap - это no-op, если n четный, но создает проблему, когда n нечетно. См. https://en.wikipedia.org/wiki/Heap%27s_algorithm для правильного алгоритма (по крайней мере, это правильно сегодня) или см. Обсуждение в Генератор перестановок алгоритма Heap's

Чтобы увидеть, как работает алгоритм Хипа, вам нужно посмотреть, что представляет собой полная итерация цикла для вектора, как в четном, так и в нечетном случае. Для вектора четной длины полная итерация алгоритма Куба оставит вектор повернутым влево на одну позицию. Если вектор имеет нечетную длину, то в конце алгоритма вектор будет обратным. Вы можете доказать, что оба эти факта верны с использованием индукции, хотя это не дает никакой интуиции относительно того, почему это правда. Глядя на диаграмму на странице Википедии, может помочь.

9
задан Jorge Castro 16 May 2012 в 12:57
поделиться

3 ответа

Создание Измененной Контурной карты и Представление его к Проекту

Ubuntu, замечательно, что Вы думаете о помощи другим пользователям Вашего компьютера. Вот некоторые шаги, которые можно сделать.

я попытаюсь дать Вам схему необходимых шагов. Детали будут зависеть от того, в чем нуждается Ваш компьютер.

Создание Измененной Контурной карты

подробные направления для определения пользовательской клавиатуры для Ubuntu здесь . Я предложил бы копировать Ваш существующий файл клавиатуры в новое имя и затем изменить тот файл, чтобы добавить и изменить то, что необходимо. Можно сделать это с gksudo gedit/usr/share/X11/xkb/symbols/old-name и внести изменения в редакторе. Затем сохраните их под новым именем. Если Вы забываете, что можно переустановить xkb-блок-данных.

Активация и Тестирование Измененной Контурной карты

Переходят к Параметрам настройки системы и Выбору панель управления Клавиатуры. В нижнем выборе Настройки Расположения . Затем можно нажать + значок на нижнем левом углу, чтобы добавить новый файл к меню, выбрать его и протестировать его.

Содействие в Ubuntu

, Если Вы не имеете один, необходимо получить учетную запись Панели запуска. Перейдите в панель запуска и нажмите на главный правый угол для создания того. Иначе войдите в систему.

следующий шаг должен пойти сюда и удостовериться, что кто-то уже не зарегистрировал отчет. Принятие это не имеет место, сообщают о проблеме, что клавиатура по умолчанию не достаточна для Lenovo z570, и упомяните почему.

присоедините файл, который Вы создали к ошибке.

я предложил бы возвратиться сюда и предоставить ссылку на отчет об ошибках. Тем путем другие, которые распознают Ваш вопрос здесь как их проблему, могут перейти к отчету об ошибках и нажать на ссылку, в которой говорится, что ошибка влияет на них.

Помощь Еще больше Людей

можно пойти дальше, чем это путем проверки эта ссылка к странице панели запуска для восходящего потока этого пакета. Нажатие на тег Ошибок показывает проблемы в восходящем пакете, о котором знает Launchpad. Это также показывает, что Freedesktop сохраняет систему отчетности ошибки для восходящего потока.

Большинство дистрибутивов Linux, вероятно, использует этот восходящий пакет, таким образом, Ваш вклад может пойти дальше, после того как он был внесен там. Ubuntu только служит способом помочь его собственным пользователям, она способствует назад восходящим разработчикам, таким как те, которые в Debian и Freedesktop для помощи пользователям не-Ubuntu.

можно нажать на ссылку , Ошибки прослежены в freedesktop.org Bugzilla. наверху, чтобы перейти к системе отчетности ошибки Freedesktop и отправить им Ваш отчет об ошибках и новый файл контурной карты. После того как Вы делаете это, необходимо вернуться к отчету об ошибках Панели запуска и добавить, что ошибка влияет на восходящий пакет и поместила ссылку на восходящий отчет об ошибках там. Тем путем разработчики Ubuntu будут знать, что они не должны делать этого сами.

я вижу, что команда Ubuntu X занята при подготовке работы Quantal, таким образом, это - вероятно, хорошее время для создания вклада. Их список рассылки по ubuntu-x@lists.ubuntu.com, и я уверен, что они болтаются на IRC также.

6
ответ дан John S Gruber 22 October 2019 в 14:42
поделиться

Я предполагаю, что Вы создаете новое расположение для своей клавиатуры с помощью xkb конфигурационные файлы. Сделать это движение к:

/usr/share/X11/xkb/symbols

Здесь, Вы видите конфигурации раскладок клавиатуры сокращениями страны. Например, разметки для английских США находятся в "нас" файл. В этом файле можно определить то, что должно произойти, если клавиша нажата в различных ситуациях.

я предлагаю, чтобы Вы посмотрели на нас файл и попытка играть с ключами, пока Вы не приобретаете навык его и затем создаете Ваше собственное отображение.

Вы видите более полное практическое руководство в: http://www.dotkam.com/2007/06/25/custom-keyboard-layout-in-ubuntu-or-just-linux-2/

2
ответ дан Arash 22 October 2019 в 14:42
поделиться

Вы могли попытаться просить, чтобы установленный пользователь Панели запуска добавил их, или если можно кодировать, получить доступ к ответвлению Базара, соответствующему этому коду, и предложить изменение там. Вы, возможно, должны присоединиться к соответствующей группе сначала, но Вы можете предлагать код без состава группы. Кто-то должен будет фиксировать его для Вас, все же.

1
ответ дан ζ-- 22 October 2019 в 14:42
поделиться
Другие вопросы по тегам:

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