Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2009, 17:50   #1
ГРИГОРИЙ-кореш
 
Регистрация: 12.02.2009
Сообщений: 2
Плохо быстрая сортировка

задан массив на 10000 элементов действительного типа. Упорядочить его за спадением его элементов. Результаты занести в текстовый файл. СОРТИРОВАТЬ МЕТОДОМ БЫСТРОЙ СОРТИРОВКИ!
ГРИГОРИЙ-кореш вне форума Ответить с цитированием
Старый 16.04.2009, 18:13   #2
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Помнится, на олимпиадах каждый раз, как нужна была сортировка, мы тупо копипастили BP\EXAMPLES\DOS\QSORT.PAS и меняли тип данных на нужный.

Как результат, в университете, мне, олимпиаднику, пришлось переизобретать алгоритм быстрой сортировки прямо на зачёте, потому что мне казалось, что я его помню, а выяснилось, что нет. К счастью, моё переизобретение сошлось с тем, что называется быстрая сортировка, и зачёт я получил, но такое экстремальное разгильдяйство не всем сходит с рук.

Следуя правилам форума, копирую исходник:
Код:
{ Turbo Sort }
{ Copyright (c) 1985,90 by Borland International, Inc. }

program qsort;
{$R-,S-}
uses Crt;

{ This program demonstrates the quicksort algorithm, which      }
{ provides an extremely efficient method of sorting arrays in   }
{ memory. The program generates a list of 1000 random numbers   }
{ between 0 and 29999, and then sorts them using the QUICKSORT  }
{ procedure. Finally, the sorted list is output on the screen.  }
{ Note that stack and range checks are turned off (through the  }
{ compiler directive above) to optimize execution speed.        }

const
  max = 1000;

type
  list = array[1..max] of integer;

var
  data: list;
  i: integer;

{ QUICKSORT sorts elements in the array A with indices between  }
{ LO and HI (both inclusive). Note that the QUICKSORT proce-    }
{ dure provides only an "interface" to the program. The actual  }
{ processing takes place in the SORT procedure, which executes  }
{ itself recursively.                                           }

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[(l+r) DIV 2];
  repeat
    while a[i]<x do i:=i+1;
    while x<a[j] 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;
  until i>j;
  if l<j then sort(l,j);
  if i<r then sort(i,r);
end;

begin {quicksort};
  sort(Lo,Hi);
end;

begin {qsort}
  Write('Now generating 1000 random numbers...');
  Randomize;
  for i:=1 to max do data[i]:=Random(30000);
  Writeln;
  Write('Now sorting random numbers...');
  quicksort(data,1,max);
  Writeln;
  for i:=1 to 1000 do Write(data[i]:8);
end.
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстрая сортировка Serious Общие вопросы Delphi 2 02.11.2010 13:38
Быстрая запись лог-файла Lehatut Win Api 3 20.02.2009 15:59
Быстрая графика (вопрос) notnap Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 02.02.2009 23:49
Быстрая работа с графикой Deight Мультимедиа в Delphi 3 13.01.2009 17:49
Быстрая сортировка списка ManU Паскаль, Turbo Pascal, PascalABC.NET 2 08.12.2008 11:57