Program Primer_6;

Uses CRT;

Const n = 10; размер массива

m_min = -100; диапазон значений

m_max = 100; элементов массива

Type TVector = Array [1..n] Of Integer;

Var i: Word;

a : TVector;

out_sort: Text; файловая переменная

Procedure Init(m: Word; elem_min, elem_max: Integer; Var vector: TVector);

Var i: Word;

Begin

Randomize; запуск генератора случайных чисел

For i:=1 To m Do задание элементов массива случайными числами
в диапазоне от elem_min до elem_max

vector[i]:=elem_max - Random(elem_max - elem_min +1);

End;

Procedure Sort_Hoar(m, bottom, top: Word; Var vector: TVector);

Var i, j: Word;

Str: Boolean;

temp: Integer;

Begin

i := bottom;

j := top;

str := False;

While (i < j) Do

Begin

If (vector[i] > vector[j]) Then

Begin

temp := vector[i];

vector[i] := vector[j];

vector[j] := temp;

str := Not(str);

End; {If}

If (str)

Then i := i + 1

Else j := j – 1;

End; {While}

If (i > 1) And ((i – 1) > bottom)

Then Sort_Hoar(m, bottom, i – 1, vector);

If (j < (m – 1)) And ((j + 1) < top)

Then Sort_Hoar(m, j + 1, top, vector);

End;

 

Begin

ClrScr;

Assign(out_sort,’d:\User\out_sort.txt’);

ReWrite(out_sort); открытие текстового файла для записи

Init(n, m_min, m_max, a); инициализация массива

Writeln(out_sort, ‘Исходный вектор:’);

For i:=1 To n Do

Write(out_sort, a[i]:5);

WriteLn(out_sort);

Sort_Hoar(n, 1, n, a); сортировка элементов массива

Writeln(out_sort, ‘Отсортированный вектор:’);

For i:=1 To n Do

Write(out_sort, a[i]:5);

WriteLn(out_sort);

Close(out_sort); закрытие текстового файла

ReadLn;

End.

Результат работы программы:

Исходный вектор:

-62 18 -48 46 -44 -58 -95 76 4 -65

Отсортированный вектор:

-95 -65 -62 -58 -48 -44 4 18 46 76

Метод К.Хоара считается одним из самых быстрых методов сортировок.

 

 








Дата добавления: 2015-08-08; просмотров: 579;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.