|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72.
Изучаю Java, решил подтянуть алгоритмы. Дошел до Merge-Sort. Решил написать код по книжке Кормена(сами алгоритмы там пишутся в серых табличках). Выдает ошибку Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Знаю, что вышел тупо за пределы массива. А нельзя тупо сделать в функции merge массив размера end - start + 1 каждый раз, а потом тупо сделать сортировку, например, quicksort? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 02:56 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
Не понимаю, как правильно организовать функцию merge. Если там запустить сортировку вставками, то все гуд, но сам алгоритм MergeSort теряет смысл. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 04:33 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
Alexandrietz, а кто тебе подсказал эту реализацию? Ты сам ее написал или это скопировано из учебника? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 11:57 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
Мой поинт вот в чем. Исторически merge-sort (MR) создавался как механизм сортировки данных на магнитных лентах. Тоесть на тех устройствах где не было random-access, a было только последовательное чтение и последовательная запись. Тоесть грубо говоря не было class RandomAccessFile а были только интерфейсы InputStream/OutputStream и было очень мало (!) реально сцуко мало оперативки. Буквально несколько килобайт. Вот под эти условия и проектировался MR. Это очень старый алгоритм. И маэстро всех алгоритмов Дональд Кнут даже включил поддержку ленточных устройств в свой виртуальный компьютер MMIX, просто чтобы было историческое наследие. И невозможно тебе реализовать и понять назначение MR без понимания исторических предпосылок. Сам по себе merge-sort прост и реализовать его легко. Но есть соблазн реализовать его неправильно. И вот чтобы понять что ПРАВИЛЬНО и что НЕ-правильно - нужен исторический экскурс. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 12:59 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
mayton, Ну, как мне говорили, что алгоритмы и структуры данных надо знать, так как иначе это будет говнокод. https://en.wikipedia.org/wiki/Sorting_algorithm - тут куча алгоритмов. Как я понимаю, стажер (пока я, конечно, мечу туда) должен знать о них, и в какой ситуации применять. Я просто читаю Кормена и сам пытаюсь придумать код, хотя рецепт алгоритма в Кормене дается. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 15:22 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
mayton, Помимо этого есть сортировки гномья, глупая, расческой и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 15:24 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
Alexandrietz mayton, Ну, как мне говорили, что алгоритмы и структуры данных надо знать, так как иначе это будет говнокод. https://en.wikipedia.org/wiki/Sorting_algorithm - тут куча алгоритмов. Как я понимаю, стажер (пока я, конечно, мечу туда) должен знать о них, и в какой ситуации применять. Я просто читаю Кормена и сам пытаюсь придумать код, хотя рецепт алгоритма в Кормене дается. На собеседованиях тебя не будут просить каждый раз сделать реализацию этих сортировок. В этом нет смысла т.к. они уже реализованы в коллекциях. И от программиста обычно требуется указать компаратор для сортируемой сущности и на этом все. Но тебя могут просто спросить про свойства сортирующих алгоритмов. Например асимптоматику и потребление дополнительной памяти и стека. Про Гномью - забудь. Я сколько работаю - никогда в практике собесов этого не слышал. Никогда этого никто не спросит. Могут спросить сортировку Хоара и Шелла. Они имеют наилучшие характеристики в скорости и стабильности. Вообще это тема "начать диалог". Тоесть понять насколько ты способен технически мыслить и соображать. Некоторые из сортировок - (метод прямого выбора или метод вставок) настолько интуитивны что даже если ты их не знал ты их сам напишешь на бумажке минут через 30 рассуждений. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 15:32 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
mayton, Я вот думаю взять массив из 10^N элементов, где N от нуля до, например, 10 и сделать дял кажжого алгоритма график. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 15:39 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
mayton, Я вот дебил не могу merge организовать никак, но алгоритм с точки зрения мозгов очень легкий, но написать это на ЯПе тяжело. А так мне понравился вставочная сортировка, но у нее много сравнений, то есть он хорош, когда массив изначально хорошо отсортирован. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 15:41 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
Alexandrietz mayton, Я вот думаю взять массив из 10^N элементов, где N от нуля до, например, 10 и сделать дял кажжого алгоритма график. График чего? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 17:05 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
mayton, Зависимости числа операций от числа элементов ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 17:29 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
А ну ОК. Одобряю. Только посчитать раздельно операции по категорям. - сравнение двух элементов. - чтение элемента - запись элемента - обмен при этом мы будем понимать что обмен в себя всё равно включает чтение и запись но не всякое чтение обязательно ассоциировано с обменом. Например в методе прямого выбора есть просто прочёсывание диапазона на предмет максимального ключа и количество чтений при этом должно быть учтено. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 17:34 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
mayton, Сложность еще зависит от изначальной отсортированности массива. Где-то она будет лучше, где-то хуже. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 17:48 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
Alexandrietz mayton, Сложность еще зависит от изначальной отсортированности массива. Где-то она будет лучше, где-то хуже. Верно рассуждаешь. Твой эксперимент по сути должен еще разделиться на 3 части. algorithmrandom shuffledordered ascordered descHoare SortShell Sort Некоторые из них будут - благоприятным начальным раскладом. А некоторые - worst case. Это тот случай когда изначально быстрый алгоритм начинает идти по избыточному пути и делать действия которые не нужны. Здесь кстати в любой алгоритм можно опционально добавить проверку на то что массив уже отсортирован. Это - наивно. Но это помогает отбросить worst-case. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 17:54 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
mayton, Как я понимаю, можно еще комбинировать алгоритмы, то есть для одной части один алгоритм, а для другой - другой, но это надо заранее знать отсортированность алгоритма. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 19:32 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
mayton, А какие ты галеры знаешь, даже самые херовые, где могут взять таких унтерменшей, как я, в будущем? Я вообще изначально в 23 года узнал о веб-программировании, но сказали, что из-за орды школьников пробиться даже на стажера почти нереал. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 19:35 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
Zzz79, Moscow ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 21:37 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
Alexandrietz mayton, Как я понимаю, можно еще комбинировать алгоритмы, то есть для одной части один алгоритм, а для другой - другой, но это надо заранее знать отсортированность алгоритма. Да. Никто не запретит тебе комбинировать алгоритмы. Но асимптоматику результата еще сложнее будет изучать и доказывать т.к. у нас появляется еще одна ветка if-else где надо расчитать с какой вероятностью мы вылетим с позитивным условияем (уже отсортирован) и как дорого для нас это будет стоить. Это опять-же игры не столько с алгоритмами а больше с композицией алгоритма + тех сведений которые известны о самих данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 22:40 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
Alexandrietz mayton, А какие ты галеры знаешь, даже самые херовые, где могут взять таких унтерменшей, как я, в будущем? Я вообще изначально в 23 года узнал о веб-программировании, но сказали, что из-за орды школьников пробиться даже на стажера почти нереал. Не своди все свои топики на ПТ о жизни ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2020, 07:44 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
Alexandrietz mayton, А какие ты галеры знаешь, даже самые херовые, где могут взять таких унтерменшей, как я, в будущем? Я вообще изначально в 23 года узнал о веб-программировании, но сказали, что из-за орды школьников пробиться даже на стажера почти нереал. По конторам ничего не мог сказать. Щас ситуация меняется каждый квартал. Нет никакого инсайда у меня. Иди в крупные галеры (от 10 000 чел) стажёром. И спокойно там расти до джуна. Тыж сам говорил что деньги для тебя не имеют значения. Вот и посиди пол-годика без амбиций. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2020, 10:03 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
Zzz79, Все разное говорят. Нет, у меня нет технической ВО. Поэтому не знаю, что делать. Если только идти в Бауманку ради технопарка. Потому и спросил про галеры, где есть возможность дорасти до джуна. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2020, 15:03 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
mayton, Ок, а если дорасту до джуна теоретически, дальше что? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2020, 15:09 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
Alexandrietz mayton, Ок, а если дорасту до джуна теоретически, дальше что? Откуда я знаю! Твоё чувство важности вырастет. Будешь вместо дешевого пива пить заграничное. Можешь на этом и остаться и быть счастливым. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2020, 15:11 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
mayton, Я с точки зрения диплома. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2020, 15:44 |
|
Не могу понять, в чем ошибка в Merge-Sort.
|
|||
---|---|---|---|
#18+
Забудь про бумажки. Это все не имеет никакого значения для твоей карьеры. Важно - то что написано в твоём резюме с точки зрения опыта работы (кол-во месяцев) и важен стек технологий и важны твои responsibilities на проекте которые были. И важны рекомендации от коллег - если таковые можно собрать. Дипломы и сертификаты можешь выкинуть в мусорное ведро. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2020, 15:46 |
|
|
start [/forum/topic.php?fid=59&msg=39976574&tid=2120747]: |
0ms |
get settings: |
5ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
30ms |
get topic data: |
2ms |
get forum data: |
0ms |
get page messages: |
412ms |
get tp. blocked users: |
0ms |
others: | 280ms |
total: | 736ms |
0 / 0 |