Люди, у кого нить есть реализованный алгос под названием "быстрая сортировка" ? (Только на masm) Нужно отсортировать одномерный массив 8-байтных значений , но пузырьковая сортировка тормозит, так как массив очень уж большой.
Поиск по quicksort в googl.ru, например, дает массу ссылок. Первая из них ведет на Википедию, где описан данный алгоритм и приведен пример реализации на нескольких языках программирования в нескольких вариантах. http://ru.wikipedia.org/wiki/Быстрая_сортировка
Да был я ещё ночью на этой самой ссылке. Что толку - я не знаю вообще СИ. Ещё там Руби какой-то... Питон, блин... Мне на асме надо.
TOLSTOPUZ Ну на асме, так на асме: Код (Text): ; процедура quick_sort ; сортирует массив слов методом быстрой сортировки. ; вход: ds:bx - адрес массива ; dx = число элементов массива quick_sort proc near cmp dx, 1 jle qsort_done xor di, di mov si, dx dec si shl si, 1 mov ax, word ptr [bx] step_2: cmp word ptr [bx][si], ax jle step_3 sub si, 2 jmp short step_2 step_3: cmp si, di je step_5 add di, 2 cmp word ptr [bx][di], ax jl step_3 step_4: mov cx, word ptr [bx][di] xchg cx, word ptr [bx][si] mov word ptr [bx][di], cx jmp short_2 step_5: xchg ax, word ptr [bx][di] mov word ptr [bx], ax push dx push di push bx mov dx, di shr dx, 1 call quick_sort pop bx pop di pop dx add bx, di add bx, 2 shr di, 1 inc di sub dx, di call quick_sort qsort_done: ret quick_sort endp Во 1-вых алгоритм был взят из книги Зубкова С. В. "Программирование на ассемблере под DOS, Windows, UNIX" - сложные приемы программирования (сортировки). Во 2-рых все набивал на скорую руку. Так что если что-то непонятно ищем книжку.
TOLSTOPUZ Поиск на сайте рулит. Название топика сбивает с толка. Наверное, должно быть алгоритм быстрой сортировки. Здесь реализация на MASM (на FASM и NASM переписать не сложно) сортировок: пузырьковой, шейкером, пирамидальной, прямым включением, прямым выбором, Шелла, Хоара (быстрая сортировка) на примере одного и того же массива двойных слов
Да, с названием ошибочка. Утро уже было, запарился. За ссылочку спасибо. Взял себе всё! P.S. У Вас там целый тутор получился про сортировки. Тема-то кстати хорошая...
TOLSTOPUZ не вижу ничего сложного в сях. Читать сишный код я примерно за неделю научился. Еще через 3 месяца уже уверенно писал в процедурном стиле. Сейчас учу классы, методы и пр. Довольно простой язык. ИМХО
Приятно читать. А то мне наговорили "доброжелатели", что это самый тяжёлый язык в мире. Я так думаю, чито си+асм очень мощное соединение. Вы наверное много книжек пересмотрели прежде чем на чём-то остановиться. Не порекомендуете, с какой начать чтение? (Извиняюсь за ОФТОПИК) И ещё вопрос Вот Си... Как насчёт вставки в сишный код ассемблерного кода? Нет сложностей \ проблем? Я просто не знаю как и что...