powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / возможно ли отсортировать элементы в массиве за о(n)?
25 сообщений из 51, страница 1 из 3
возможно ли отсортировать элементы в массиве за о(n)?
    #38887359
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
привет.

попался вопрос - в сабже.

ответ - возможно для массивов некоторых типов.

Подскажите, пожалуйста, как это?
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887389
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtusответ - возможно для массивов некоторых типов.
А каких конкретно типов не указано? Логический (true/false) можно, но на практике нафиг не нужно.
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887394
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887407
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887410
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887425
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем спасибо.

быстрое время получается.

вот, кстати, щас наткнулся на хабре - обзор

http://habrahabr.ru/post/188010/
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887453
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один бородатый чел в youtube говорит-де факториальные оценки при сравнениях грубо заменяют на n в степени n.

Забавно.
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887455
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonОдин бородатый чел в youtube говорит-де факториальные оценки при сравнениях грубо заменяют на n в степени n.

Забавно.Дык формула Стирлинга же.

...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887562
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtusпривет.

попался вопрос - в сабже.

ответ - возможно для массивов некоторых типов.

Подскажите, пожалуйста, как это?
зависит от структуры данных. есть такие что за о(n) сортируются. Почитайте Кормена, там приведены примеры.
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887564
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNПочитайте Кормена, там приведены примеры.
Часть вторая(сортировка), глава 9-я "Сортировка за линейное время".
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887657
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
miksofteNoseи вот: https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D1%81%D0%B2%D1%8F%D0%B7%D0%BD%D0%BE%D0%B3%D0%BE_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0#.D0.A1.D0.BE.D1.80.D1.82.D0.B8.D1.80.D0.BE.D0.B2.D0.BA.D0.B0_.D0.B4.D0.B2.D1.83.D1.81.D0.B2.D1.8F.D0.B7.D0.BD.D0.BE.D0.B3.D0.BE_.D1.81.D0.BF.D0.B8.D1.81.D0.BA.D0.B0]https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D1%81%D0%B2%D1%8F%D0%B7%D0%BD%D0%BE%D0%B3%D0%BE_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0#.D0.A1.D0.BE.D1.80.D1.82.D0.B8.D1.80.D0.BE.D0.B2.D0.BA.D0.B0_.D0.B4.D0.B2.D1.83.D1.81.D0.B2.D1.8F.D0.B7.D0.BD.D0.BE.D0.B3.D0.BE_.D1.81.D0.BF.D0.B8.D1.81.D0.BA.D0.B0] https://ru.wikipedia.org/wiki/Сортировка_связного_списка#.D0.A1.D0.BE.D1.80.D1.82.D0.B8.D1.80.D0.BE.D0.B2.D0.BA.D0.B0_.D0.B4.D0.B2.D1.83.D1.81.D0.B2.D1.8F.D0.B7.D0.BD.D0.BE.D0.B3.D0.BE_.D1.81.D0.BF.D0.B8.D1.81.D0.BA.D0.B0 Там же O(n log n). следующий абзац :)
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887660
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNosemiksoftпропущено...
Там же O(n log n). следующий абзац :)который ссылается на предыдущий.
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887663
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNoseследующий абзац :)
там сказано что о(n) - занимает операция восстановления указателей на предыдущий элемент.
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887670
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
ZyK_BotaNeNoseследующий абзац :)
там сказано что о(n) - занимает операция восстановления указателей на предыдущий элемент. а, точно.
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887674
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtusпривет.

попался вопрос - в сабже.

ответ - возможно для массивов некоторых типов.

Подскажите, пожалуйста, как это?

при специальных ограниченных на данные.
ищи "карманная сортировка"
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887677
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivmr_virtusпривет.

попался вопрос - в сабже.

ответ - возможно для массивов некоторых типов.

Подскажите, пожалуйста, как это?

при специальных ограниченных на данные.
ищи "карманная сортировка"
я выше дал ссылку на главу в Кормане.
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887689
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поискал, почитал. Корман - это вышеупомянутая блочная сортировка 17305846 . Распихиваем по блокам в один проход, сортировку внутри блока игнорируем как незначительную, получаем сложность O(N). ИМХУ обычный маркенговый бред из серии "Соль пищевая без ГМО".
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887705
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TИМХУ обычный маркенговый бред из серии "Соль пищевая без ГМО".
Да нет, зная внутреннюю структуру данных, и характеристику значений, иногда действительно можно свести сортировку к сложности o(n). и соль без ГМО здесь не причем.
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887721
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtus,

сортировка подсчетом
можно сортировать целые числа, double наловчиться
1. нужен вспомогательный массив такого же размера и массив подсчёта, фиксированный как правило 256 берут
2. количество проходов
а. подсчёт
b. прогонка туда-сюда по количеству разбиений int32 - 4 прохода


PS: для целых чисел использовал, очень быстро. кроме того для одинаковых значений (если что ни будь ассоциировано) сохраняется порядок
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887726
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtus,

про прогоны это оказывается называется Поразрядная сортировка
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887817
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уникальные целые в один проход. Биткартой.
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887824
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариации на тему "хитрых входных" данных. За первый проход мы
определяем что имеют место какие-то признаки. И вторым проходом
мы выводим их в правильном порядке.

О сортировке речь не идёт да и кому она нафиг нужна когда скорость
итератора достаточна чтобы "не замечать" алгоритмизированный подход.
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887839
BagaBaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавить что-ли.

Цифровая сортировка. Удобна, когда сортируемые объекты "довольно плотны" (известен диапазон возможных принимаемых значений, он влазит в память, в "сортируемом массиве" встречается большинство значений из диапазона). Иначе "большие дырки" в диапазонах "съедают весь профит"
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887924
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonУникальные целые в один проход. Биткартой.
А где тут O(n)?
...
Рейтинг: 0 / 0
возможно ли отсортировать элементы в массиве за о(n)?
    #38887946
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNДа нет, зная внутреннюю структуру данных, и характеристику значений, иногда действительно можно свести сортировку к сложности o(n). и соль без ГМО здесь не причем.
Не согласен. Вот пример реализации из вики
Код: sql
1.
2.
3.
4.
5.
6.
7.
function bucket-sort(A, n) is
  buckets ← новый массив из n пустых элементов
  for i = 0 to (length(A)-1) do
    вставить A[i] в конец массива buckets[msbits(A[i], k)]
  for i = 0 to n - 1 do
    next-sort(buckets[i])
  return Конкатенация массивов buckets[0], ..., buckets[n-1]


"вставить A[i] в конец массива" не дает никаких шансов использовать тайные знания структуры данных. Если данные попадающие в один блок изначально не стоят в отсортированном порядке, то и в блоке они останутся несортированными.

Т.е. вместо одного массива из N элементов за один проход получили M несортированных массивов. Далее сортируем каждый обычной сортировкой с минимальной сложностью O(n log(n)), т.е. в итоге сортировали все элементы, уже O(n) никак не получается.

Знания структуры данных нужно для предсказания диапазонов, чтобы в каждый блок попало примерно одинаковое количество элементов, т.е. заранее надо знать минимум, максимум и какое-то стат.распределение. Авторы алгоритма успешно "порешали" эту непростую задачу формулировкой " При карманной сортировке предполагается, что входные данные равномерно распределены на отрезке [0, 1) " Упомянули бы алгоритм как привести данные к равномерному распределению в один проход, т.е. вычислить диапазоны для разбиения на примерно равные блоки. Далее исходя из этого же утверждения вывели сложность O(n). Чем не маркетинг?
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 1 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / возможно ли отсортировать элементы в массиве за о(n)?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]