Вход



    НОВОЕ В БИБЛИОТЕКЕ
● Дифференциальные уравнен...
● Дифференциальные уравнен...
● Дифференциальные уравнен...
● Составление дифференциал...
● Составление дифференциал...
● Производные высших поряд...
● Производные высших поряд...
● Дифференцирование тригон...
● Дифференцирование алгебр...
● Дифференцирование алгебр...

    НОВЫЕ ФАЙЛЫ
● Sm графики функций (beta...
● Graf_builder
● Учимся считать
● Мобильный справочник по ...
● Уникальный калькулятор
● Программа для построения...
● «Новости ПриМата» для An...
● Schedule Builder Light 2...
● График
● Sm Калькулятор


    ЛУЧШИЕ ПУБЛИКАЦИИ
● Бухаете? Тогда я иду к в...
● Программирование под And...
● Считаем сумму ряда
● Программирование под And...
● Программирование под And...
● Новый вирус - три десятк...
● Получить кнопку ТИЦ и Pa...
● Матричный калькулятор (3...
● Небольшая забава для про...
● Пара интересных задач

    ЛУЧШИЕ МАТЕРИАЛЫ
● Высшая математика. Лекци...
● Высшая математика. Лекци...
● Высшая Математика. Лекци...
● Умножение матриц (Паскал...
● Высшая математика. Лекци...
● Высшая Математика. Лекци...
● Высшая математика. Лекци...
● Сортировка Хоара (быстра...
● Темы курсовых работ (укр...
● Теория графов плюс бонус...

    10 ЛУЧШИХ ФАЙЛОВ
● Эконометрика
● Таблица производных
● Шпаргалка по высшей мате...
● Гмурман. Теория вероятно...
● Математические формулы
● Таблица интегралов
● Таблицы неопределенных и...
● Программирование на язык...
● Программирование на Си (...
● Программирование на язык...


     
 
Карта программистов

Конструктор информеров
Список артистов. обучение английскому Керхер Холодно в доме? Теплый пол под плитку и будет тепло. осаго цена от Ритейла .



На сайте всего: 14
Посетителей: 14
Пользователей: 0

Создать сайт бесплатно
 БИБЛИОТЕКА УЧЕБНЫХ МАТЕРИАЛОВ 

ГЛАВНАЯ » БИБЛИОТЕКА » ПРОГРАММИРОВАНИЕ » ПРИМЕРЫ ПРОГРАММ [ ДОБАВИТЬ ]

Сортировка Хоара (быстрая)

Пример. Быстрая сортировка по возрастанию массива A из N целых чисел.

program Quick_Sort;
 var A:array[1..100] of integer;
 N,i : integer;
 {В процедуру передаются левая и правая границы сортируемого   фрагмента}

procedure QSort(L,R:integer);
 var X,y,i,j:integer;
begin
 X:=A[(L+R) div 2];
 i:=L; j:=R;
 while i<=j do
  begin
   while A[i]<X do i:=i+1;
   while A[j]>X do j:=j-1;
     if i<=j then
       begin
         y:=A[i]; A[i]:=A[j]; A[j]:=y;
         i:=i+1; j:=j-1;
       end;
  end;
  if L<j then QSort(L,j);
  if i<R then QSort(i,R);
end;

begin
 write('количество элементов массива ');
 read(N);
 for i:=1 to n do read(A[i]);
 QSort(1,n); {упорядочить элементы с первого до n-го}
 for i:=1 to n do write(A[i],' '); {упорядоченный массив}
end.




Просмотров [ 4750 ]  ●  09.04.08  ●   Рейтинг  [ 100% ]


Комментариев: [ 3 ]

0  
admin  ● 02.04.10
Согласен с Радомиром - цель здесь - пояснить работу алгоритма. А дальше пишите на чем угодно. Особое уважение Радомиру за знание "более 4-х языков". Это где-то 4,2 или 4,3 языка :))


0  
Радомир  ● 31.03.10
Кому надо, тот поймет...
К примеру мне (при знании более 4-х языков) для обьяснения работы алгоритма (пишу по этому курсовую работу) очень подходит код на языке Pascal (хотя, это вполне применимо и для Delphi). Кому реально нужно, тот розберется в коде.
Автору спасибо)


0  
Лёха  ● 18.03.10
поновее языка не нашлось?




  Ваше Имя  



   





Украинская Баннерная Сеть