Помощь - Поиск - Пользователи - Календарь
Полная версия: Бинарная сортировка
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
guf
Поиск презрительно ничего не нашел...

Плиз дайте реализацию этого кода в виде кода на паскале или на псевдокоде.
guf
Вообще это помоему разновидность быстрой сортировки если я не ошибаюсь...нашел токо бинарный поиск
volvo
Цитата
это помоему разновидность быстрой сортировки если я не ошибаюсь
Не ошибаешься...
procedure qsort(var a: array of integer; lt, rg: integer);
var
med, i, j, X: integer;
begin
med := (lt + rg) div 2; { <--- вот поэтому она бинарная }
X := a[med];
i := lt;
j := rg;

while i <= j do begin

while (a[i] < X) do inc(i);
while (a[j] > X) do dec(j);

if (i <= j) then begin
swap(a[i], a[j]); { <--- это напишешь сам }
inc(i);
dec(j);
end;

end;

if (lt < j) then qsort(a, lt, j);
if (i < rg) then qsort(a, i, rg);
end;
guf
Спасибо за помощь! Да swap в принципе ясно как написать...
Гость
ну вообще то, пример, написанный выше является сортировкой оара. Это немного другое, как я понимаю... нужна попарная сорторовка.. если это устроило(любая сортировка) то норм, а иначе.. алгоритм попарной сортироки: сравниваются 1 и 2 элементы,3 и 4 элементы... затем 2 и 3, 4 и 5...этот процесс повторяется, пока перестановкав 1 и во 2 случае не прекратится.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.