Сортировка методом сцепления очередей. Поиск методом составных атрибутов

Автор работы: Пользователь скрыл имя, 22 Октября 2009 в 14:01, Не определен

Описание работы

Курсовой проект

Файлы: 1 файл

Курсовой проект.doc

— 312.50 Кб (Скачать файл)

a:=b;

ScepOch(0,StrToInt(Edit2.Text)-1);

k:=k+1;

end;

t2:=MilliSecondOfTheMinute(Time);

for i:=0 to StrToInt(Edit2.Text)-1 do

begin

StringGrid2.Cells[i,0]:=IntToStr(a[i]);

end;

Edit3.Text:=FloatToStr(abs(t1-t2)/1000);

end; 

procedure TForm1.Button2Click(Sender: TObject);

var i:Integer;

begin

SetLength(b,StrToInt(Edit2.Text));

for i:=0 to StrToInt(Edit2.Text)-1 do begin

b[i]:=Random(StrToInt(Edit1.Text));

StringGrid1.Cells[i,0]:=IntToStr(b[i]);

end;

StringGrid1.ColCount:=StrToInt(Edit2.Text);

StringGrid2.ColCount:=StrToInt(Edit2.Text);

Button1Click(Sender);

StringGrid3.ColCount:=StrToInt(Edit2.Text);

for i:=0 to StrToInt(Edit2.Text)-1 do

StringGrid3.Cells[i,0]:=StringGrid2.Cells[StrToInt(Edit2.Text)-1-i,0];

end; 

procedure TForm1.Button3Click(Sender: TObject);

var obr,i,k:integer;

f:FindRec;

t1,t2:Integer;

begin

obr:=StrToInt(Edit4.Text);

t1:=MilliSecondOfTheMinute(time); k:=0;

while k<=10000 do begin

f:=SostAtr(obr,StrToInt(Edit2.Text));

inc(k); end;

t2:=MilliSecondOfTheMinute(time);

if f.count<>0 then begin for i:=0 to f.count-1 do begin

Edit5.Text:=Edit5.Text+IntToStr(f.dats[i]+1)+';';

Edit7.Text:=Edit7.Text+IntToStr(StrToInt(Edit2.Text) - f.dats[i])+';';

end; end

else begin

Edit5.Text:='нет такого элемента';

Edit7.Text:='нет такого элемента'; end;

Edit6.Text:=FloatToStr(abs(t1-t2)/10000);

end; end.

3.2. Блок-схема:

 
 
 

procedure ScepOch (l, t: integer);

 
 
 
 
 
 
 
 

function Zameni(x:integer;y:integer):Integer; 

 
 
 
 
 
 
 
 
 
 
 
 
 

function Obmen(i:integer;j:integer):Boolean; 

 

procedure TForm1.Button1Click(Sender: TObject); 

 
 
 
 

procedure TForm1.Button2Click(Sender: TObject); 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

procedure TForm1.Button3Click(Sender: TObject); 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

function SostAtr (obr:Integer;kol:Integer):FindRec;

 

3.3. Описание переменных: 

function Obmen(i:integer;j:integer):Boolean;

p – переменная для перестановки двух элементов массива 

function Zameni(x:integer;y:integer):Integer;

i,j – счетчики 

procedure ScepOch (l, t: integer);

i – элемент  массива для сортировки 

procedure TForm1.Button1Click(Sender: TObject);

i – счетчик 

procedure TForm1.Button2Click(Sender: TObject);

i – счетчик 

procedure TForm1.Button3Click(Sender: TObject);

obr – образец для поиска

i - счетчик

f – номер данного элемента в массиве 

function SostAtr (obr:Integer;kol:Integer):FindRec;

j - счетчик

n – количество элементов

v – промежуточная переменная для работы

rez – номер образца в массиве 
 
 

3.4. Внешний вид формы:

 
 
 
 
 
 

3.5. Результаты выполнения программы: 

Количество элементов Среднее время поиска (мс)
100 5
1000 7,60
3000 8
5000 10
10000 12
 
 
Количество

элементов

время сортировки (мс)
10 14
50 16
100 17
200 18
300 20
500 25
1000 49
2000 127
3000 263
5000 405
6000 504
7000 559
8000 775
9000 965
10000 1068
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

4. Заключение

     Поставщики  вычислительных машин считают, что  в среднем более 25% машинного времени  систематически тратится на сортировку. Во многих вычислительных системах на нее уходит больше половины машинного  времени. Из этой статистики можно заключить, что либо сортировка имеет много важных применений, либо ею часто пользуются без нужды, либо применяются в основном неэффективные алгоритмы сортировки. По-видимому, каждое из трех предположений содержит долю истины. Во всяком случае ясно, что сортировка заслуживает серьезного изучения с точки зрения ее практического использования.

     Но  даже если бы сортировка была почти  бесполезна, нашлась бы масса других причин заняться ею! Изобретательные  алгоритмы сортировки говорят о  том, что она и сама по себе интересна как объект исследования. В этой области существует множество увлекательных нерешенных задач наряду с весьма немногими уже решенными.

     Делая вывод после изучения сортировки и поиска, можем сказать, что сортировка не достаточно эффективна при значительных размерах массива, т.к. значительное количество ненужных операций негативно влияет на время сортировки. Поиск при исследовании показал хорошие результаты по времени и прост в реализации.

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

5. Список использованной литературы 

1.     Д. Кнут «Искусство программирования»  3 том  

2.     Н. Вирт «Алгоритмы+структуры  данных=программы».-М.:Мир.1977 

3.     Белова Т.М.,Старков Ф.А. «Программирование в Delphi».-КурскГТУ.Курск.2002 

4.     Фаронов В.В. «Delphi.Программирование  на языке высокого уровня».-СПб.:Питер,2006 

5.     А.Ахо,Дж.Хопкрофт,Дж.Ульман «Построение  и анализ вычислительных алгоритмов».-

М.:Мир,1979 

6.     Фаронов В. «Turbo Pascal.Наиболее полное руководство».-СПб.:БХВ-Петербург,2004 

7.     Иванов Б.Н. «Дискретная матеметика.Алгоритмы  и программы».-М.:Лаборатория базовых  знаний,2003 

8.     Липский В. «Комбинаторика для  программистов».-М.:Мир,1988 

9.     Д.Грин , Д.Кнут «Комбинаторная теория».- М.:Мир,1987 

10.      Д.Грин , Д.Кнут «математические методы  анализа алгоритмов».М.:Мир,1987 

11.      Дж.Макконнелл «Основы современных  алгоритмов».М.:Техносфера,2004 

12.      Аветисян Р.Д.,Аветисян Д.О. «Теоретические  основы информатики» 
 
 
 
 

Информация о работе Сортировка методом сцепления очередей. Поиск методом составных атрибутов