Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Алгоритмы сортировки [D6, D7, WinXP]


mishapost ©   (2004-10-24 23:58:00) 

Народ очень надо хороший рабочий алгоритм сортировки методом вставки а также методом QuickSort.

Помогите


Defunct   (2004-10-26 00:10:00) [1]

> mishapost   (25.10.04 00:10) [6]

В поставке Delphi есть пример с использованием потоков (Demos\Threads\thrddemo.dpr). Сортирует тремя способами оновременно.
Бери его за основу и меняй под свою задачу.


mishapost   (2004-10-25 21:09:00) [2]

Народ огромное спасибо. Про модуль Classes - то его использоватеь нельзя


TUser   (2004-10-25 10:45:00) [3]


> хороший рабочий алгоритм сортировки методом вставки

Это парадокс.

А хорошие алгоритмы есть в книгах. Еще в модуле Classes есть такая procedure QuickSort


ALEIIIKA   (2004-10-25 10:23:00) [4]

Смотрите пример в поставке Delphi

 procedure QuickSort(var A: array of Integer; iLo, iHi: Integer);
 var
   Lo, Hi, Mid: Integer;
   t : Integer;
 begin
   Lo := iLo;
   Hi := iHi;
   Mid := A[(Lo + Hi) div 2].i;
   repeat
     while A[Lo].i < Mid do Inc(Lo);
     while A[Hi].i > Mid do Dec(Hi);
     if Lo <= Hi then
     begin
       T := A[Lo];
       A[Lo] := A[Hi];
       A[Hi] := T;
       Inc(Lo);
       Dec(Hi);
     end;
   until Lo > Hi;
   if Hi > iLo then QuickSort(A, iLo, Hi);
   if Lo < iHi then QuickSort(A, Lo, iHi);
 end;


kaZaNoVa   (2004-10-25 00:54:00) [5]

procedure TForm1.Button4Click(Sender: TObject);

procedure SortDate(L, R: Integer);
var i,j,p: Integer;  temp: String;
begin
  repeat
    I:= L;  J:=R; P:=(L+R)shr 1;
    repeat
      while(memo1.Lines[I]<memo1.Lines[P])do Inc(I);
      while(memo1.Lines[J]>memo1.Lines[P])do Dec(J);
      if I<=J then begin
        temp:=memo1.Lines[I];
        memo1.Lines[I]:=memo1.Lines[J];
        memo1.Lines[J]:=temp;
        if P=I then P:=J else if P=J then P:=I; Inc(I); Dec(J);
      end;
    until I>J;
    if L<J then SortDate(L,J); L:=I;
  until I>=R;
end;

begin
SortDate(0,Memo1.Lines.Count-1);
end;


wnew   (2004-10-25 00:49:00) [6]

http://www.codersclub.net/articles/100.html


mishapost   (2004-10-25 00:10:00) [7]

Да так точно.
Нужно написать прогу которая сравнивает этих два метода сортировки массива на время и в итоге построить график


kaZaNoVa   (2004-10-25 00:09:00) [8]

лаба, да ?


mishapost   (2004-10-25 00:07:00) [9]

чисел к тому же целых, массив не меньше 10000 эл.


Кириешки   (2004-10-25 00:04:00) [10]

массивы бывают разными...
массив чего?


mishapost   (2004-10-25 00:01:00) [11]

массива


Кириешки   (2004-10-25 00:00:00) [12]

>Народ очень надо хороший рабочий алгоритм сортировки методом >вставки а также методом QuickSort.

Сортировки чего?


Наверх

Титульная страница Поиск, карта сайта Написать письмо