сортировка структур данных - PullRequest
2 голосов
/ 17 декабря 2010

если у нас есть n элементов с ключами: {0,1, -1} и мы хотим их отсортировать, сколько сравнений у нас, по крайней мере, в худшем случае?

Ответы [ 3 ]

2 голосов
/ 17 декабря 2010

Вот решение, которое работает в O (n):

  1. Создайте массив из трех списков.
  2. Для каждой записи ключа / значения выполните

    lists[entry.key + 1].append(entry)
    
  3. Объединить три списка в один длинный список.

Таким образом, у вас нет сравнения между ключами.

1 голос
/ 17 декабря 2010

При небольшом фиксированном числе возможных значений вы можете сортировать по линейному времени что-то вроде , считая сортировку .

0 голосов
/ 17 декабря 2010

Это зависит от используемого алгоритма и распределения элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...