|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Привет. Услышал задачу от коллеги который проводит технические собесы. Заинтересовало. Дан отсортированный массив целых размером N. После сортировки он - циклически сдвинут на M шагов. Найти насколько он сдвинут. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 14:15 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Я так понимаю не просто найти, а максимально быстро? ИМХО что-то типа двоичного поиска: первый сравнить со средним, если первый больше среднего, то берем первую половину, иначе вторую и т.д. Это если нет повторов, если есть повторы то только последовательный перебор. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 14:29 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
maytonПривет. Услышал задачу от коллеги который проводит технические собесы. Заинтересовало. Дан отсортированный массив целых размером N. После сортировки он - циклически сдвинут на M шагов. Найти насколько он сдвинут. по сути, если массив сдвинут, Находим значение медианы отрезка массива (на первой итерации всего массива) и проверяем, если её на левом отрезке если начало 1 отрезка меньше значения медианы, значит решение находится в правой части, повторяем это на отрезке в котором находится решение, пока не найдем точку в которой отрезки будет упорядочены. индекс в этой точке будет значением на сколько сместили. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 14:35 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Медиана - это o(n). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 14:52 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
mayton, медиана это центр массива и сложность будет логарифмическая O(logn) у данного метода, а не линейная O(n), так как каждый раз мы уменьшаем диапазон поиска в в 2 раза, обычный бинарный поиск. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 15:05 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
А сорян. Я думал что имеется в виду медиана как в Фотошопном эффекте median. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 15:07 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Код-бы надо. Для пущей убедительности. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 15:11 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
maytonПривет. Услышал задачу от коллеги который проводит технические собесы. Заинтересовало. Дан отсортированный массив целых размером N. После сортировки он - циклически сдвинут на M шагов. Найти насколько он сдвинут. Для начала, хорошо бы видеть пример, хотя бы до 10-15 чисел. Во вторых, как можно сравнивать массивы, если дан только один массив - отсортированный? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 15:29 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 15:33 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Так сколько дано массивов? Представленный массив - не отсортированый. Его нет в перечне - "дано". ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 15:37 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 15:41 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Roman Mejtes, зацикливается: Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 15:46 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Roman Mejtes, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 15:52 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Dima T, у меня вроде нет. Дотнета нету. Переписал в REPL. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Я изначально думал что надо циклический итератор ввести... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 15:54 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Можно ли изменить формулировку задачи? Например, Имеется N последовательных чисел от 1 до N. Эти числа помещены в массив N чисел. С этим массивом провели циклическую сдвижку на k элементов. Получилось, что теперь первым числом в массиве будет число N-k+1, а последним числом в массиве будет число N-k. Теперь, имея только новый массив после сдвига на k элементов, как можно определить это число k. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 15:58 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Dima TRoman Mejtes, зацикливается: Код: c# 1. 2.
у меня не зацикливается ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 16:03 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Roman MejtesDima TRoman Mejtes, зацикливается: Код: c# 1. 2.
у меня не зацикливается Извиняюсь, не зацикливается. Это похоже студия у меня затупила, решил что зациклилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 16:06 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Некорректно для перевёрнутой сортировки. Код: sql 1. 2. 3. 4.
Мда... за кадром остался вопрос о направлении. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 16:08 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
maytonНекорректно для перевёрнутой сортировки. Больше на меньше замени. maytonМда... за кадром остался вопрос о направлении. И о повторах Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 16:12 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Интересно .. можно ли бросить какой-то ассерт или эксцепшен если этот предикат дал равенство? Код: sql 1.
Ну и при этом асимптоматику не сломать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 16:20 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Зачем циклы, если задача поставлена так, как описано в 21871816 . Тогда задача решается с помощью одной формулы! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 16:22 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
maytonИнтересно .. можно ли бросить какой-то ассерт или эксцепшен если этот предикат дал равенство? Код: sql 1.
Ну и при этом асимптоматику не сломать. Эта проверка не особо замедлит. Рекурсивный вызов намного тяжелее. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 16:30 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
Столько всего написали для простейшей задачи. Число шагов сдвига соответствует первому найденному элементу, который меньше последнего. Обычный бинарный поиск с корректировкой на равенства. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 16:37 |
|
Четверговая задачка на поиск
|
|||
---|---|---|---|
#18+
На таком массиве неправильно сработает Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2019, 16:38 |
|
|
start [/forum/topic.php?fid=16&msg=39806365&tid=1339946]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
144ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 231ms |
total: | 479ms |
0 / 0 |