0 / 0 / 0
Регистрация: 11.04.2024
Сообщений: 15
|
|
1 | |
Напишите три различных алгоритма сортировки строк06.05.2024, 09:35. Показов 4042. Ответов 42
Метки нет (Все метки)
Ребят, помогите пожалуйста решить задачу: Напишите три различных алгоритма сортировки строк: сортировку пузырьком, сортировку вставками и сортировку слиянием. Создайте программу, которая позволит пользователю выбрать один из алгоритмов и отсортировать введенные строки. Замерьте время выполнения сортировки для строк различной длины (10 символов, 100 символов, 1000 символов, 10000 символов). Постройте графики времени выполнения для каждого алгоритма в зависимости от длины строк. Сделайте выводы о временной сложности каждого алгоритма и их эффективности на различных входных данных.
0
|
06.05.2024, 09:35 | |
Ответы с готовыми решениями:
42
Напишите три различных алгоритма сортировки строк Напишите приложение Java для сортировки массива из заданных целых чисел с использованием алгоритма сортировки слиянием Реализовать три алгоритма внутренней сортировки Реализовать четыре различных алгоритма сортировки одномерного целочисленного массива |
667 / 264 / 28
Регистрация: 01.06.2018
Сообщений: 3,353
|
|
06.05.2024, 19:51 | 21 |
давайте каждый будет делать то, что он хочет в рамках правил форума и здравого смысла?
сортировка строк это Sort(new string[]); а в задании упоминаются только символы. вот эта часть задания "Замерьте время выполнения сортировки для строк различной длины (10 символов, 100 символов, 1000 символов, 10000 символов)", как-то не похоже что нужно взять неограниченное число строк длиной в 10 символов, посчитать, потом неограниченное число символов длиной 100 и опять посчитать. Всё же я думаю речь про сортировку символов в строке. По себе не суди. И как вы введёте в консоль ровно 10000 символов? Через буфер обмена предварительно создав файл и скопировав из него? Так это будет одна строка в 10000 символов, а сколько еще таких строк нужно?
0
|
06.05.2024, 20:01 | 22 |
В задании упоминаются строки, которые, по понятным причинам состоят из символов.
Это очень не логичное задание получится - из строки "мама мыла раму" получится что-то вроде "аамм алмы амру". Явно преподаватель не этого ожидает. "Ровность" тут ни к чему. Главное - количественное соотношение, чтобы увидеть разницу. Почему сказано именно 1000/10000 символов - не могу сказать, но по факту это не влияет ни на что. Суть алгоритмов выяснится сразу, будь то 1005 символов или 10520. Таким образом сортируется строка в виде оформленного (смыслового) предложения. Но никто не мешает таким образом сортировать сами предложения по любому из критериев. Сортировка и ее сложность не меняется.
0
|
667 / 264 / 28
Регистрация: 01.06.2018
Сообщений: 3,353
|
|
06.05.2024, 20:41 | 24 |
что за чушь? ))))))))))))))
получится " аааалммммруы", это как раз классическая сортировка посимвольно так мы читаем задание или не читаем, я вас не понимаю. а то получается что вы вольно трактуете задание, но агритесь на моё упоминание файлов. вы еще что-то отсебячили Я прекрасно всё читаю, но вот связности нет. Так как непонятно зачем указывать 10 символов, 100 символов, при этом это одна строка получается. Нормальное условие про строки было бы например "отсортировать 10 строк" а не символов.
0
|
06.05.2024, 20:58 | 25 |
belalugoci, предложения состоят из слов, слова из символов. В задании говорится о сортировке строк, которые могут включать в себя одно/два/10/20... слов - символы остаются на месте. Нигде нет ни одного упоминания, что нужно сортировать символы.
В этом контексте, количество символов определяет общую длину строк, как критерий оценки временных затрат работы трех алгоритмов сортировки. В символах же, измеряется, например, скорость набора текста - но ведь это не означает что вы будете всегда набирать неосмысленный текст в виде символов? Пробелы, точки, запятые, двоеточия... тоже символы! А слово "слово!?" - не поверите - тоже набор символов. вот такая вот чушь, представьте себе. Добавлено через 6 минут belalugoci, ну если вам очень нравится сортировать именно символы - кто ж против? Вбейте все слова в свои массивы str.ToCharArray() и сортируйте предложенными методами. И вы обнаружите, что ничего не поменяется: сравнительная скорость алгоритмов окажется той же самой. В этом и состоит их демонстрация, а на чем именно - не имеет значения.
0
|
667 / 264 / 28
Регистрация: 01.06.2018
Сообщений: 3,353
|
|
07.05.2024, 05:29 | 26 |
и для чего вы мне это пишете?
тоже очень полезная информация наверное как нет и упоминания о том, каким образом формируются строки. Я предложил их брать из файла, например, вы посчитали это недопустимым, хотя, как я уже сказал - способа получения строк в описании нет. Есть указание на "отсортировать введенные строки", но способ ввода не оговаривается. А вот указание на символы есть и оно явное, причем не ясно какая связь между символами и строками. А 10 символов это одна строка в 10 символов или 10 строк по 1 символу? Если последнее допустимо, то мы в любом случае приходим к сортировке символов. Вы зачем это пишете? Речь идёт про качество задания, а не про запреты. Так от ввода через файл тоже ничего не поменяется, но у вас истерика случилась.
0
|
1051 / 330 / 119
Регистрация: 28.11.2020
Сообщений: 1,054
|
|
07.05.2024, 05:42 | 27 |
belalugoci, ...вы опять "фигней" занимаетесь?!..
В задание стоит: ... именно строк, а не строки и не строковых переменных. Вариант сортировки в Word'е. (к примеру: сортировка строк по первой букве) Если сортировка строки: то в этом случае именно что было предложено wizard41. Ни где не стоит о сортировке строки по символам. Не могу даже придумать для чего нужно в реальности.
1
|
667 / 264 / 28
Регистрация: 01.06.2018
Сообщений: 3,353
|
|
07.05.2024, 08:23 | 28 |
да кто бы спорил о том что там написано (было бы славно чтобы кроме переписывания того что там в условии вы еще и читали что написал я), у меня вопросы вызывает привязка к количеству символов и указания на то, как количество символов связано со строками.
ну так вы идите дальше и расскажите как это коррелирует с тем что студента заставляют анализировать количество символов. Это лишь предположение на основании условий задачи. (вы одно кривое и косое прочитали и вдруг однозначно поняли, а мои однозначные слова по этому вопросу и не читали и не поняли) Задача в практической проверки сложности алгоритма, она совсем не обязана иметь практическую привязку, это раз. Два - сортировка символов в слове очень широко используется, если вы не в курсе, то зачем писать о своем невежестве?
0
|
kotelok
|
07.05.2024, 08:33
#29
|
Не по теме: В рамках прикладных задач, с которыми я имею дело, сортировка строк встречается повсеместно - и банально для отображения в UI, и для группировок, и для ускорения поиска, и при построении кластеризованного индекса по текстовому полю. Просто для интереса и расширения кругозора - подскажите примеры каких-нибудь реальных практических задач, где требуется сортировать буквы в слове.
0
|
667 / 264 / 28
Регистрация: 01.06.2018
Сообщений: 3,353
|
|
07.05.2024, 09:54 | 30 |
1. Самое распространенное - проверка на анаграмму. Я использую для словарей в context mixing.
2. Для уменьшения энтропии в сжатии. 3. Ну и безусловно любые манипуляции с байтами/символами, что эквивалентно строкам в однобайтовой кодировке. Когда вы сравниваете строки у вас так или иначе может потребоваться побайтовое (посимвольное) сравнение, не обязательно, но это часть сравнения и в самом C#. (или вы знаете какой-то другой способ сравнения строк? Большие строки можно сравнивать хешем конечно например прыгая в unsafe 64-бит словами, что лишь делает несколько более замудрёный и более быстрый способ сравнения) Добавлено через 2 минуты ну и это классика, если я имею дело с этим типом задач, то остальное не существует, а те кто пишет иное - уроды.
1
|
kotelok
|
07.05.2024, 10:13
#31
|
Не по теме: Что? Как вы вообще умудрились из моего сообщения сделать такие выводы? Я просто нейтрально поделился своим опытом и поинтересовался вашим. Всё. Вообще никаких оценок не давал и ваш опыт не обесценивал. Обход символов/байтов строки (для сравнение с другой строкой или сбора какой-то статистики) - это не сортировка. Это просто обход символов/байтов строки.
0
|
667 / 264 / 28
Регистрация: 01.06.2018
Сообщений: 3,353
|
|
07.05.2024, 10:42 | 32 |
безусловно, но если вам нужно сортировать байты, любые, то это ничем не отличается от работы со строками концептуально. Вы строки как-то выделяете на фоне других данных? Я - нет.
Прошу прощения за свои слова, это издержки "общения" с некоторыми местными.
0
|
Любознательный
6703 / 1965 / 336
Регистрация: 10.03.2016
Сообщений: 4,561
|
|
07.05.2024, 10:46 | 33 |
если отбросить все фекалии и прочие речевые обороты, то в голом остатке:
Почему возник этот вопрос? Очевидно же: Если указано: - т.е. во множественном числе и без упоминания символов, то требуется сортировать строки между собой. Если бы было указано сортировать строку, то сортировать надо было бы уже символы, либо слова (без уточнения никак). Если бы было указано сортировать символы в строке(ах), то вообще всё однозначно. Это же простая логика, почему это условие вызывает вопросы? Не просто сложности, а временной сложности и именно поэтому упоминается количество символов: Т.е. цель конкретной задачи определить время выполнения сортировки нескольких строк между собой, но с учетом длины этих строк... Вот же, Вы сами это озвучиваете: лексикографический порядок, он такой... не наведешь, его и не будет.
1
|
2105 / 1515 / 392
Регистрация: 26.06.2017
Сообщений: 4,351
|
|
07.05.2024, 10:55 | 34 |
Бац и перевёл вопрос от "где требуется сортировать буквы в слове" к какой-то сортировке байт.
А если мне не нужно сортировать байты блин, а нужно строки сортировать, например фамилии сотрудников для отчёта. Эту задачу можно назвать практической? Если да, то причём тут сортировка байтов и уж тем более символов в строках?
1
|
667 / 264 / 28
Регистрация: 01.06.2018
Сообщений: 3,353
|
|
07.05.2024, 11:13 | 35 |
не сортируй, буду рад увидеть мою цитату где я заставляю кого-то сортировать байты.
был вопрос Котелка о том, где можно практически использовать сортировку символов, я ему ответ дал. Остальное лишь ваши влажные фантазии. Сортируй, я здесь вообще причём? Можно. Не вижу связи моих слов и вашей претензии. Сортировка байт/символов вполне себе обычное явление, которое некоторым кажется ненужным, я указал на то, что это не так, не более того. Попросили примеры, привёл. Всё. Не вижу никакой логической связи между моими словами и вашими претензиями. Для меня не очевидно. Вот с рисованием графиков кому-то очевидно что это не нужно в коде, мне это не очевидно, потому что когда я изучал программирование нам задания давали в адекватной форме и у меня не сформировалось навыка "чтения между строк" со способностью сканирования гипоталамуса преподавателя.
0
|
Любознательный
6703 / 1965 / 336
Регистрация: 10.03.2016
Сообщений: 4,561
|
|
07.05.2024, 11:40 | 36 |
Я тоже учился давно и материал подавали в адекватном виде... но...
Как можно из этого предложения: получить вывод, что требуется сортировка символов? Тем более, что задание сформулировано предельно четко: Для такого вывода должны существовать какие-либо предпосылки. Эта предпосылка: - говорит лишь о том, что необходимо оценить время сортировки строк различной длины. А в чем измеряется длина строки? В целом, в задании нет ни слова о сортировке символов... Поэтому возникает вопрос: а у кого тут навык "чтения между строк" наиболее развит?
0
|
667 / 264 / 28
Регистрация: 01.06.2018
Сообщений: 3,353
|
|
07.05.2024, 12:18 | 37 |
а почему вы решили что я из этого такой вывод сделал? мне кажется я достаточно подробно и в нескольких сообщениях всё написал, вот для меня ОЧЕВИДНО что я всё расписал доступно и понятно, а вы излагаете какие-то странности.
а с чего вы решили что я и эти слова понимаю иначе? они есть и они озвучены. нет, тут как раз мне более очевидно что речь идет о сортировке символов в разных строках разной длины, что не согласуется с предыдущим текстом. Так как для сортировки строк важно не какой они длины, а какое их количество, длина может быть произвольной (не в разнобой, одного размера, но заданного самим пользователем) и озвучивать специально длину строки, но не озвучивать их количество - как раз и есть проблема в описании этой задачи. Ну вот смотрите, если вы говорите что нужно отсортировать СТРОКИ, то есть много строк (больше одной), то какой параметр вам нужно указать? Сколько строк! Ну или если для условия задачи важен и размер строк, то и этот параметр тоже. Тогда ясно, что нужно отсортировать 10, 100, 1000 и 10000 СТРОК. Длина строки тут не важна. И сразу возникает вопрос если важна длина строки но не сказано сколько строк всего, то как именно через стандартный ввод вы собираетесь их вводить. То что было сделано решение через Split - ну это просто обычный эрзац, в условии про такое ни слова. Это выводы, которые напрашиваются при разборе самого условия, именно поэтому оно и не ясное. я уже в n-ый раз вам расписал проблему, читайте, изучайте, но того как именно вы понимаете эту задачу там нет, поэтому это и не очевидно. Я не буду спорить что у кого-то есть насмотренность по таким задачам и всякие дебильные условия вы можете интерпретировать как-то, но это не отменяет того факта что само по себе условие написано неоднозначно.
0
|
Любознательный
6703 / 1965 / 336
Регистрация: 10.03.2016
Сообщений: 4,561
|
|
07.05.2024, 13:11 | 38 |
хмм, Вы же не будете отказываться от своих слов? Ваш вопрос и предполагаемый ответ на него:
? Мы на одном и том же языке разговариваем сейчас? На русском? Ну, в таком случае, ответ на вопрос: будет однозначен: из нас двоих, в данном случае, это точно не я... Помните же: ? Если бы речь шла о сортировке символов, то не было бы словосочетания "сортировка строк", а было бы словосочетание: "сортировка символов" - это и есть адекватная подача материала. Нет? Это, как раз объяснимо: Количество строк не имеет значения для оценки (в программировании это частое явление, здесь допустим произвольный выбор, минимум две, максимум - бесконечность, лишь бы ресурсов хватило), а вот длина строк при сортировке - это как раз, то, что и необходимо оценить, т.е. оценить необходимо время выполнения сортировки при прочих равных условиях, в разных алгоритмах, но при этом, затраты необходимо оценивать между одним и тем же алгоритмом, но с разной длиной строк, в том числе. А специально озвученная длина - это важное условие для оценки временных затрат. Чтобы сравнение было более корректным, вводятся опорные точки, по которым необходимо сделать оценку, потому что, при выборе произвольного значения, оценка может оказаться весьма сомнительной. У Вас странная логика... это ведь, как раз, необходимо оценить. Сравнение строк производится посимвольно, но не для сортировки символов, а для сортировки строк между собой. Естественно, что сравнение строк разной длины, будет иметь разные временные затраты - вот их необходимо оценить. Что тут сложного для понимания? Ни количество, ни способ ввода не имеет значения для оценки. Вводите как угодно, главное - количество строк для разных алгоритмов, должно быть одинаковое, а также, для той же оценки, ещё и строки должны быть определенной длины, т.е. количество тестов должно быть в четырех вариантах (по количеству символов в строках) и по три теста каждый (на каждый алгоритм). Сравнивается эффективность алгоритмов между собой и их зависимость от длины строк. Никак они не напрашиваются. Если исходить из Ваших рассуждений, то встречный вопрос: Почему именно сортировка символов Вам пришла на ум, а не сортировка слов? Строка состоит как из символов, так и из слов... Что остановило Вас в выборе сортировки слов? Упоминание длины строки? Так это никак не указывает на то, что там нет разделения на слова... ну и т.д. Но это тупиковая логика... она не приведет к верному решению, ибо в задаче, обычно обозначают достаточные условия для решения. Так ведь и я Вам разложил её по пунктам, и не только я... но Вы, почему-то не воспринимаете аргументов. Я сам очень придирчив к условиям задач, это должно быть заметно для других участников форума. Но в данном случае, Вы просто ошибаетесь. Или Вы считаете, что такая человеческая черта Вам не присуща?
0
|
2105 / 1515 / 392
Регистрация: 26.06.2017
Сообщений: 4,351
|
|
07.05.2024, 13:41 | 39 |
Справедливости ради соглашусь.
Если исходить из того, что длина строк будет оказывать влияние лишь на метод Compare двух строк, а не на сам алгоритм сортировки набора строк, то разумным выглядит, что требуется именно сортировка символов в строке. Но тогда возникают большие вопросы к преподавательскому составу, который такие задания выдаёт. Для однозначности нужна всего одна фраза примерно такая: Напишите три различных алгоритма сортировки массива символов представленного строкой.
0
|
2105 / 1515 / 392
Регистрация: 26.06.2017
Сообщений: 4,351
|
|
07.05.2024, 16:27 | 40 |
wizard41, YuS_2, belalugoci, давайте продолжим, а то становится скучно.
1
|
07.05.2024, 16:27 | |
07.05.2024, 16:27 | |
Помогаю со студенческими работами здесь
40
Реализовать три любых алгоритма сортировки матрицы на выбор Выбор алгоритма сортировки строк! Напишите программу, которая из букв вашей фамилии составляет три различных слова Напишите процедуру сортировки строк в обратном алфавитном порядке Напишите процедуру сортировки строк в обратном алфавитном порядке Напишите программу для сортировки заданного смешанного списка целых чисел и строк с помощью лямбда-функции Реализуйте на практике 2 алгоритма поиска и 2 алгоритма сортировки. Результаты сравните Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |