Как определить среднюю и наихудшую сложность пространства сортировки ковшей - PullRequest
0 голосов
/ 09 апреля 2019

Может кто-нибудь сказать, как определяется сложность SPACE для Bucket в среднем и наихудшем случае?

1 Ответ

0 голосов
/ 09 апреля 2019

Ну, во-первых, нам нужно понять, как работает сортировка ведра:

  1. Создать пустой массив
  2. Переберите исходный массив и поместите каждый объект в корзину
  3. Сортировка каждого из непустых ведер
  4. Проверьте сегменты по порядку, а затем поместите все объекты обратно в исходный массив.

Это делает сортировку сегментов отличным алгоритмом для больших списков, которые необходимо отсортировать. Средняя сложность по времени составляет O (n + k), где n - количество ваших сегментов. Худшая временная сложность is (n ^ 2). Причина в том, что сортировка сегментов полезна, когда ввод равномерно распределен по диапазону, поскольку всякий раз, когда есть ключи, близкие друг к другу, они, вероятно, окажутся в одном и том же сегменте, в противном случае нам понадобится сегмент для каждого ключа в исходный массив.

В худшем случае сложность пространства равна O (nk). Сложность пространства - это мера объема рабочей памяти, в которой нуждается алгоритм. Это означает, сколько памяти, в худшем случае, необходимо в любой точке алгоритма. Как и в отношении сложности времени, нас больше всего интересует, как растут потребности в пространстве, в больших терминах, с ростом размера N входной задачи.

Надеюсь, это помогло!

...