|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.12.2010, 19:40 | #1 |
Пользователь
Регистрация: 26.10.2010
Сообщений: 29
|
Быстрая сортировка
вопрос
равносильна ли эта быстрая сортировка const max=20; { можно и больше... } type list = array[1..max] of integer; procedure quicksort(var a: list; Lo,Hi: integer); procedure sort(l,r: integer); var i,j,x,y: integer; begin i:=l; j:=r; x := a[(r+l) div 2]; { для выбора среднего элемента } repeat while a[i]<x do i:=i+1; { a[i] > x { сортировка по убыванию} while x<a[j] do j:=j-1; { x > a[j] { сортировка по убыванию} if i<=j then begin if a[i] > a[j] then {это условие можно убрать} {a[i] < a[j] при сортировке по убыванию} begin y:=a[i]; a[i]:=a[j]; a[j]:=y; end; i:=i+1; j:=j-1; end; until i>j; if l<j then sort(l,j); if i<r then sort(i,r); end; {sort} вот этой укороченной const max=20; { можно и больше... } type list = array[1..max] of integer; procedure quicksort(var a: list; Lo,Hi: integer); procedure sort(l,r: integer); var i,j,x,y: integer; begin i:=l; j:=r; x := a[(r+l) div 2]; { для выбора среднего элемента } repeat while a[i]<x do i:=i+1; { a[i] > x - сортировка по убыванию} while x<a[j] do j:=j-1; { x > a[j] - сортировка по убыванию} if i<=j then i:=i+1; j:=j-1; end; until i>j; if l<j then sort(l,j); if i<r then sort(i,r); end; {sort} вообще эта укороченная сортировка будет действовать без сбоев? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Быстрая сортировка | Serious | Общие вопросы Delphi | 2 | 02.11.2010 13:38 |
быстрая сортировка настолько быстрая | Serg12 | Помощь студентам | 8 | 28.03.2010 21:31 |
Быстрая сортировка | _Studentka_ | Помощь студентам | 9 | 20.11.2009 00:19 |
Быстрая сортировка | lennon | Общие вопросы C/C++ | 0 | 08.10.2009 23:23 |
быстрая сортировка | ГРИГОРИЙ-кореш | Помощь студентам | 1 | 16.04.2009 18:13 |