-37 / 5 / 1
Регистрация: 09.12.2020
Сообщений: 194
1
Delphi

Быстрая сортировка

20.12.2020, 17:27. Показов 717. Ответов 0

Author24 — интернет-сервис помощи студентам
Решил создать тему, потому что решения не смог нагуглить.

Берем строку "абракадабра", применяем к ней сортировку и получаем строку - "аааааббдкрр"
А вот это уже полностью отсортированная строка, хотя начальные строки остались прежние "аааааббдкрр"
-----
абра
абракадабр
абракадабра - исходная строка
адабра
акадабра
бра
бракадабра
дабра
кадабра
ра
ракадабра

Требуется именно быстрая сортировка Хора, потому что она самая быстрая. Но проблема заключается в том, что во всех примерах (типа Википедии) она сравнивает символы строки, но не подстроки, как выше приведено в примере.
Если есть пример на Паскале, то можно переписать на ассемблер, но если есть готовый кусок кода на ассемблере, то без комментариев в нем не обойтись никак, чтобы поменять там логику потом.

Как решают эту проблему.
Например, берут память х2 и строка становится длиннее "абракадабраабракадабра". Плохой вариант.
Или берут 2 массива "абракадабра" "абракадабра" и сравнивают. Плохой вариант.
Все потому, что памяти всегда не хватает, надо экономить и требуется сортировать только 1 строку.

Вообще-то, требуется набор ссылок на позиции в строке и сортировать именно ссылки, я это сделал, сортировка происходит, но частично есть мусор, вот так - "аааббдкрраа".
Это происходит потому, что в классике идет сравнение не подстрок в Хоар, а только символов (через переменную в стеке и ссылкой на память). Понятно, что длинную строку не впихнуть в стек и если я сравниваю 2 ссылки на память, сортировка нарушается, хотя она и есть.

Есть ли готовое решение на ассемблере или Паскале для быстрой сортировки Хоар? Строка будет длинная, максимально 2 Гб, но хотя бы на 400 Мб. Встроенные функции сортировки не устраивают, они узкозаточенные, пока не буду говорить об этом, в чем там проблема.
Сравнивать нужно побайтово, нужен кусок кода, остальное я допишу сам. В итоге, все будет переписано на ассемблер, хочется сразу посмотреть решение на ассемблере
И надо конечно избавиться от рекурсии сортировки
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2020, 17:27
Ответы с готовыми решениями:

Быстрая сортировка
Реализовать программу быстрой сортировки на assembler.

Быстрая сортировка
Доброго времени суток, подскажи пожалуйста на что он ругается? в ассемблере дно, но нужно как то...

Разработать программу сортировки: сортировка перестановкой, сортировка вставкой, быстрая сортировка
Задание: Разработать программу сортировки: - сортировка перестановкой - сортировка...

Сортировки во внутренней памяти(сортировка стопками, быстрая и пирамидальная сортировка)
Поясните, пожалуйста на простом языке :) Структура данных содержит записи фиксированного размера...

0
20.12.2020, 17:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2020, 17:27
Помогаю со студенческими работами здесь

Быстрая сортировка, ситуация, при которой сортировка работает не корректно
Procedure sort(m, l: Integer); Var i, j, x, w: Integer; Begin i := m; j := l; x...

Сквозная сортировка матрицы по строкам по неубыванию (быстрая сортировка)
Здравствуйте. Задача: Сквозная сортировка матрицы А по строкам по неубыванию. Методом быстрой...

Быстрая сортировка(сортировка Хоара). Отсортировать фрагмент массива
Мне нужно отсортировать фрагмент массива, расположенный между первым и последним отрицательным...

Быстрая сортировка (сортировка Хоара) для связных списков
есть у кого готовый алгоритм? или подскажите как реализовать

Быстрая сортировка и Обменная сортировка - реализация API функции
Всех приветствую! Делаю курсовой проект и появилась одна проблем-ка.... У меня есть готовые две...

Отсортировать первую половину одномерного массива по убыванию (Сортировка простыми вставками и быстрая сортировка) (разм
Отсортировать первую половину одномерного массива по убыванию (Сортировка простыми вставками и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru