Реализация алгоритмов "Быстрой сортировки" в структурном программировании

Понятие алгоритма быстрой сортировки. Описание реализации алгоритмов быстрой сортировки в структурном программировании. Анализ эффективности метода быстрой сортировки массива при решении задач с помощью программы ABC Pascal. Задачи "Быстрой сортировки".

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 23.02.2021
Размер файла 1018,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОСТОВСКОЙ ОБЛАСТИ

государственное образовательное учреждение

среднего профессионального образования Ростовской области

«КОНСТАНТИНОВСКИЙ ПЕДАГОГИЧЕСКИЙ КОЛЛЕДЖ»

КУРСОВАЯ РАБОТА

по МДК 02.01

Разработка, внедрение и адаптация системного программного обеспечения отраслевой направленности

Тема: Реализация алгоритмов «Быстрой сортировки» в структурном программировании

Автор:

Студент(а):3 «В» курса

Ливанда Валерия Александровича

Специальность 230701.51

Прикладная информатика (по отраслям)

Научный руководитель

Алексей Юлия Вадимовна

Константиновск, 2014

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

ЗАКЛЮЧЕНИЕ

ЛИТЕРАТУРА

Задачи «Быстрой сортировки»:

Задача № 1. Сортировка методом Хоара

Задача № 2. Процедура быстрой сортировки

Задача № 3. Обменная сортировка с разделением

ВВЕДЕНИЕ

алгоритм быстрая сортировка массив рascal

В настоящее время компьютер прочно вошел в повседневную жизнь. Его возможности используются на работе, при проведении досуга, в быту и других сферах жизни человека. Количество информации, которую люди доверяют своему электронному другу, с каждым днем растет. Эти машины плотно внедрились в нашу жизнь. Они имеют колоссальные возможности, позволяя тем самым освободить мозг человека для более необходимых и ответственных задач. Компьютер может хранить и обрабатывать очень большое количество информации, которая в настоящее время является одним из самых дорогих ресурсов. По мере развития и модернизации компьютерных систем и программного обеспечения возрастает объем и повышается уязвимость хранящихся в них данных.

В настоящее время новые информационные технологии занимают важнейшее место не только в специализированных, но и в повседневных сферах жизни. Компьютеры применяются в бизнесе, менеджменте, торговле, учебе и многих других сферах человека. Программирование для персональных компьютеров стало во многом основным и ключевым моментом, определяющим успех многих инженерных проектов, а также объектом научного исследования. Научно доказано, что программы поддаются точному анализу, основанному на строгих математических рассуждениях, и что можно избежать многих традиционных для программистов ошибок, если осмысленно пользоваться научными методами и приемами. ЭВМ приходится не только считывать данные и выполнять над ними определенные алгоритмы, но и хранить значительные объемы информации, к которой нужно быстро обращаться. Эта информация представляет собой абстракцию того или иного фрагмента реального мира и состоит из определенного множества данных, относящихся к какой-либо проблеме.

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

Разработка программного обеспечения занимает такая отрасль науки, как программирование. Она приобретает все большее значение в последнее время. Ведь вычислительная техника прошлых лет уже почти полностью исчерпала себя и не удовлетворяет тем потребностям, которым появляются перед человеком.

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

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

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

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

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

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

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

Тема: Реализация алгоритмов быстрой сортировки в структурном программировании.

Объект: целочисленные массивы в структурном программировании ABC Pascal.

Предмет: алгоритмы быстрой сортировки массивов.

Цель: анализ эффективности алгоритма быстрой сортировки данных в языке ABC Pascal.

Задачи:

· Рассмотреть определение понятия алгоритма быстрой сортировки;

· Описать реализацию алгоритмов быстрой сортировки в структурном программировании;

· Проанализировать эффективность метода быстрой сортировки массива при решении задач с помощью программы ABC Pascal;

Гипотеза: использование метода быстрой сортировки массива позволит решать задачи с помощью программы ABC Pascal.

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

Компьютер предназначен в основном для облегчения работы человека с большими информационными объемами. Как же, используя только переменные известных вам типов, сохранить в памяти и обработать данные, содержащие десяток, сотню, тысячу чисел? А ведь такие задачи встречаются в любой области знания. Конечно, можно завести столько переменных, сколько данных, можно даже занести в них значения, но только представьте, какой величины будет текст такой программы, сколько времени потребуется для его составления, как много места для возможных ошибок? Естественно, об этом задумывались и авторы языков программирования. Поэтому во всех существующих языках имеются типы переменных, отвечающие за хранение больших массивов данных. В языке Паскаль они так и называются: массивы.

Одномерный массив - это фиксированное количество элементов одного и того же типа, объединенных одним именем, причем каждый элемент имеет свой уникальный номер, и номера элементов идут подряд (линейный массив).

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

Массивы состоят из ограниченного числа компонент, причем все компоненты массива имеют один и тот же тип, называемый базовым. Номер элемента массива называется индексом. Индекс - это значение порядкового типа, определенного, как тип индекса данного массива. Очень часто это целочисленный тип (integer, word или byte), но может быть и логический и символьный.

Описать одномерный массив можно несколькими способами:

1. В разделе переменных:

Var имя массива: Array [тип индекса] of тип элементов;

2. В разделе описания типов:

Type имя типа = Array [тип индекса] of тип элементов;

3. В разделе констант:

Const имя массива: Array [тип индекса] of тип элементов = (список элементов);

Ввод данных в одномерный массив:

1. Ввод массива с клавиатуры оператором Read.

For i:=1 to n do

Begin

Writeln ('введите элемент массива');

Read (A[ i ]);

2. Заполнение массива с помощью генератора случайных чисел Random на интервале (a, b):

Randomize;

For i:=1 to n do

A[ i ] := Random (b-a)+a;

3. Ввод массива в разделе констант (производится вместе с объявлением).

Const N = 5;

A: = array [1..N] of integer (-8,0,4,1,3);

Индексы элементов массива обычно целые числа, однако могут быть и символами, а также описываться другими порядковыми типами. Т.е. для индекса можно использовать тип, в котором определена дискретная последовательность значений, и все эти значения можно пересчитать по порядку. Индексировать можно как константами и переменными, так и выражениями, результат вычисления которых дает значение перечислимого типа. Если индекс массива может приобретать все допустимые значения определенного перечислимого типа, то при описании массива возможно задание имени типа вместо границ изменения индекса. При этом границами индекса будут первое и последнее значения в описании типа индекса. Границы изменения индексов могут задаваться с помощью ранее объявленных констант. Рекомендуется предварительно объявлять тип массива в разделе описания типов.

Массив состоит из нескольких элементов. Ко всему массиву можно обращаться по его имени. Можно обращаться к его элементу, но для этого надо задать индекс (индексы). Для объявления массива необходимо задать типы его индексов и компонент.

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

Быстрая сортировка -- это один из лучших универсальных алгоритмов (одновременно не очень сложных), разработанных к настоящему времени. Относится к группе алгоритмов обменной сортировки (как и пузырьковая сортировка). Сортируемый массив разбивается на два подмассива, для чего сначала выбирается пограничное значение - компаранд (т.е. значение, с которым будут сравниваться другие элементы массива). Все элементы, большие компаранда, переносятся в один подмассив, а меньшие? в другой. Весь процесс повторяется для каждого подмассива до тех пор, пока весь массив не будет упорядочен.

В основе программы лежит метод Чарльза Хоара, английского учёного, специализирующегося в области информатики и вычислительной техники. Наиболее известен как разработчик алгоритма быстрой сортировки.В 1962 г. известный математик Хоаропубликовал алгоритм сортировки, за которым закрепилось название quicksort. Идея этого алгоритма удивительно проста. Сначала выбирается средний элемент в сортируемом массиве. Все, что больше этого элемента, переносится в правую часть массива, а все, что меньше, -- в левую. После первого шага средний элемент оказывается на своем месте. Затем аналогичная процедура повторяется для каждой половины массива. На каждом последующем шаге размер обрабатываемого фрагмента массива уменьшается вдвое. Количество операций, которое требуется, в среднем, для реализации этой процедуры, оценивается константой nlog 2n. Программа быстрой сортировки оформлена из процедуры quick, к которой обращается вызывающая программа.

Быстрая сортировка (quickSort) является существенно улучшенным вариантом алгоритма сортировки с помощью прямого обмена (его варианты известны как пузырьковая сортировка и шейкерная сортировка), известного, в том числе, своей низкой эффективностью. Принципиальное отличие состоит в том, что в первую очередь производятся перестановки на наибольшем возможном расстоянии и после каждого прохода элементы делятся на две независимые группы. Любопытный факт: улучшение самого неэффективного прямого метода сортировки дало в результате один из наиболее эффективных улучшенных методов.

Этапы алгоритма быстрой сортировки:

1. Выбираем в массиве некоторый элемент, который будем называть опорным элементом. С точки зрения корректности алгоритма выбор опорного элемента безразличен. С точки зрения повышения эффективности алгоритма выбираться должна медиана, но без дополнительных сведений о сортируемых данных её обычно невозможно получить. Известные стратегии: выбирать постоянно один и тот же элемент, например, средний или последний по положению; выбирать элемент со случайно выбранным индексом.

2. Операция разделения массива: реорганизуем массив таким образом, чтобы все элементы со значением меньшим или равным опорному элементу, оказались слева от него, а все элементы, превышающие по значению опорный -- справа от него.

3. Затем сортируем массив, лежащий слева и справа от опорного элемента.

Ясно, что операция разделения массива на две части относительно опорного элемента занимает времяO(n). Поскольку все операции разделения обрабатывают разные части исходного массива, размер которого постоянен, суммарно на каждом уровне потребуется такжеO(n) операций. Следовательно, общая сложность алгоритма определяется лишь количеством разделений.

Достоинства:

· Один из самых быстродействующих (на практике) из алгоритмов внутренней сортировки общего назначения.

· Прост в реализации.

· Требует лишьO(lgn) дополнительной памяти для своей работы. (Не улучшенный рекурсивный алгоритм в худшем случаеO(n) памяти)

· Хорошо сочетается с механизмамикэшированияивиртуальной памяти.

· Допускает естественное распараллеливание (сортировка выделенныхподмассивов в параллельно выполняющихся подпроцессах).

· Допускает эффективную модификацию для сортировки по нескольким ключам (в частности --алгоритм Седжвикадля сортировки строк): благодаря тому, что в процессе разделения автоматически выделяется отрезок элементов, равных опорному, этот отрезок можно сразу же сортировать по следующему ключу.

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

Недостатки:

· Сильно деградирует по скорости до (O(n2)) в худшем или близком к нему случае, что может случиться при неудачных входных данных.

· Прямая реализация в виде функции с двумя рекурсивными вызовами может привести к ошибке переполнения стека, так как в худшем случае ей может потребоваться сделатьO(n) вложенных рекурсивных вызовов.

· Неустойчив.

· Ещё одним недостатком быстрой сортировки является недостаточно высокая производительность при сортировке небольших массивов. Впрочем, как пишет Н. Вирт, этим грешат все усовершенствованные методы. Для сортировки небольших массивов лучше использовать один из прямых методов, например, сортировку вставкой. В отличие от сортировки слиянием, быстрая сортировка не является стабильной.

Несмотря на то, что в худшем случае скорость работы быстрой сортировки невелика, в среднем это самый лучший из известных методов сортировки массива на том же месте (т.е. без использования дополнительной памяти). Если сравнивать его с сортировкой слиянием, то стоит отметить, что в среднем быстрая сортировка справляется со своей работой быстрее. Однако сортировка слиянием даже в худшем случае сохраняет скорость работы , в то время как быстрая сортировка становится квадратичной.

Это улучшенный метод, основанный на обмене. При пузырьковой сортировке производятся обмены элементов в соседних позициях. При пирамидальной сортировке такой обмен совершается между элементами в позициях, жестко связанных друг с другом бинарным деревом. Ниже будет рассмотрен алгоритм сортировки К. Хоара, использующий несколько иной механизм выбора значений для обменов. Этот алгоритм называется сортировкой с разделением или быстрой сортировкой. Она основана на том факте, что для достижения наибольшей эффективности желательно производить обмены элементов на больших расстояниях.

Условие задачи № 1: Дан одномерный массив N отсортировать его с помощью метода Хоара.

Листинг программы:

program quicksort;

uses crt;

const n = 10;

type m = array [1..n] of integer;

var a: m; k: integer; l, r: byte;

procedurequick_sort (l, r: byte);

var b, j, i, temp, h: integer;

begin

b: = a[(l+r) div 2];

i:=l;

j:=r;

whilei<=j do

begin

while a[i] < b doinc (i);

while a[j] > b dodec (j);

ifi<= j then

begin

temp: = a[i];

a[i]: = a[j];

a[j]: = temp;

inc (i);

dec (j);

end;

end;

if l < j then quick_sort(l,j);

ifi< r then quick_sort(i,r);

end;

begin

writeln ('Сортировка методом Хоара');

writeln;

write('алгоритм сортировки, часто называемый qsort');

write (' по имени реализации в стандартной библиотеке,');

write (' широко известный алгоритм сортировки, разработанный английским');

write ('программистом чарльзом хоаром во время его работы.');

write ('один из самых быстрых известных универсальных алгоритмов');

write ('сортировки массивов обменов при упорядоченииэлементов.');

writeln;

writeln;

writeln ('исходныймассив:');

for k: = 1 to n do

begin

a[k]: = random(10)-5;

write (a[k],' ');

end;

l: = 1;

r: = n;

quick_sort (l,r);

writeln;

writeln;

writeln ('отсортированныймассив:');

for k: = 1 to n do

write (a[k],' ');

writeln;

writeln;

write ('таким образом, все элементы размещаются в позициях с начала списка,');

write ('а все остальные элементы размещаются в позициях с конца списка.');

write ('затем элементы сравниваются с основой и изменяют свою позицию,');

writeln ('когда они больше и расположены в писке выше нее, или когда меньше и расположены в списке ниже нее.');

end.

Рисунок 1. Задача № 1. Сортировка методом Хоара

Условие задача № 2: Разработать алгоритм быстрой сортировки одномерного массива фиксированной длины N заполненного случайными числами.

Листинг программы:

program quicksort;

uses crt;

procedure new (var x: array[1..5000] of integer;n:integer);

proceduresort (l,r: integer);

var i,j,x1,y1,m: integer;

begin

i:=l;

j:=r;

m: = round ((l+r)/2);

x1: = x[m];

repeat

while x[i]<x1 do inc(i);

while x[j]>x1 do dec (j);

ifi<= j then

begin

y1: = x[i];

x[i]: = x[j];

x[j]: = y1;

inc (i);

dec (j);

end;

untili>j;

if l<j then sort(l,j);

ifi<r then sort(i,r);

end;

var i: integer;

begin

sort (1,n);

writeln;

writeln ('массив после сортировки:');

for i: = 1 to n do

write (x[i],' ');

writeln;

writeln;

write ('таким образом, все элементы размещаются в позициях с начала списка,');

write('а все остальные элементы размещаются в позициях с конца списка.');

write('затем элементы сравниваются с основой и изменяют свою позицию, ');

writeln ('когда они больше и расположены в писке выше нее, или когда меньше и расположены в списке ниже нее.');

end;

var

a: array[1..5000] of integer;

i, n:integer;

begin

clrscr;

randomize;

writeln ('Процедура быстрой сортировки');

writeln;

write ('алгоритм сортировки, часто называемый qsort');

write (' по имени реализации в стандартной библиотеке, ');

write(' широко известный алгоритм сортировки, разработанный английским');

write ('программистом чарльзом хоаром во время его работы.');

write ('один из самых быстрых известных универсальных алгоритмов');

write ('сортировки массивов обменов при упорядочении элементов.');

writeln;

writeln;

write ('введите размер массива не более 5000 n=');

readln (n);

writeln;

writeln ('исходныймассив:');

for i: = 1 to n do

begin

a[i]: = random(50)-10;

write (a[i],' ');

end;

writeln;

new (a,n);

end.

Рисунок 2. Задача № 2. Процедура быстрой сортировки

Условие задачи № 3: Дан исходный массив отсортировать его с помощью метода быстрой сортировки по возрастанию массива A из N.

Листингпрограммы:

program quicksort;

uses crt;

const n = 7;

var a: array[1..n] of integer;

first, last, i: integer;

procedure quicksort(var mas: array[1..n] of integer; first, last: integer);

var f, l, mid, count: integer;

begin

f: = first;

l: = last;

mid: = mas[(f+l) div 2];

repeat

while mas[f]<mid do inc (f);

while mas[l]>mid do dec (l);

if f<=l then

begin

count: = mas[f];

mas[f]: = mas[l];

mas[l]: = count;

inc(f);

dec(l);

end;

until f>l;

if first<l then quicksort(a, first, l);

if f<last then quicksort(a, f, last);

end;

begin

clrscr;

randomize;

writeln ('Обменнаясортировкасразделением');

writeln;

write ('алгоритм сортировки, часто называемый qsort');

write ('по имени реализации в стандартной библиотеке,');

write ('широко известный алгоритм сортировки, разработанный английским');

write ('программистом чарльзом хоаром во время его работы.');

write ('один из самых быстрых известных универсальных алгоритмов');

write ('сортировки массивов обменов при упорядочении элементов.');

writeln;

writeln;

writeln ('исходный массив быстрой сортировки:');

for i: = 1 to n do

begin

a[i]: = random(10);

write (a[i]:5);

end;

first: = 1; last:=n;

quicksort(a, first, last);

writeln; writeln('отсортированный массив быстрой сортировки:');

for i:=1 to n do

write(a[i]:5);

writeln;

writeln;

write ('таким образом, все элемент размещаются в позициях с начала списка,');

write ('а все остальные элементы размещаются в позициях с конца списка. ');

write ('затем элементы сравниваются с основой и изменяют свою позицию, ');

writeln ('когда они больше и расположены в писке выше нее, или когда меньше и расположены в списке ниже нее.');

end.

.

Рисунок 3. Задача № 3. Обменная сортировка с разделением

Таким образом, описанный алгоритм быстрой сортировки прост и эффективен. Время быстрой сортировки пропорционально n*log(n). Однако у алгоритма сортировки есть и недостатки. Массив случайных чисел сортируется очень быстро, однако только что отсортированный массив повторно процедура может обрабатывать крайне медленно, вплоть до полного исчерпания ёмкости стека, так как эффективность алгоритма крайне зависит от удачного выбора опорного элемента.

ЗАКЛЮЧЕНИЕ

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

Pascal обладает немалым количеством плюсов, например: он пригоден для обучения программированию, как систематической дисциплине, так как основан на ряде фундаментальных понятий, ясно и естественно отраженных в языке, а также достаточно легок в изучении, он позволяет строить программу из операторов в виде блоков, что создает условия для так называемого структурного программирования, Программы на этом языке обладают повышенной надежностью благодаря избыточности информации, сообщаемой компилятору (например, к избыточным относится требование описывать все переменные). Эта избыточная информация используется при проверке согласованности программы без ее выполнения. Все это еще раз доказывает, что Pascal идеально подходит для начального обучения программирования.

Система предназначена для обучения программированию на языке Паскаль и призвана осуществить переход от простых программ к модульному, объектно-ориентированному, событийному и компонентному программированию. Многие концепции в ABC Pascal упрощены, что позволяет использовать их на ранних этапах обучения. Этот собирательный язык позволяет развивать мышление.

В начале курсовой работы была поставлена цель: анализ эффективности алгоритма быстрой сортировки данных в языке ABC Pascal, что было успешно достигнуто.

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

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

ЛИТЕРАТУРА

1. Абрамов В.Г., Трифонов Н.П. Введение в язык Паскаль [Текст]/ В.Г. Абрамов, Н.П. Трифонов Н.П., Москва: Наука, 2011 г.

2. Алгоритмы и структуры данных [Электронный ресурс]/ Режим доступа: http://depositfiles.com

3. Антоненко М.В. Толстый самоучитель работы на компьютере c XP, Vista и Windows 7 [Текст]/ М.В. Антоненко, Москва: Наука и техника, 2010 г.

4. Бородач Ю.С. Паскаль для персональных компьютеров. Справочное пособие [Текст]/ Ю.С. Бородач, Москва: Бф-Итмп Ника, 2012 г.

5. Бутомо И.Д., Самочадин А.В., Усанова Д.В. Программирование на алгоритмическом языке Паскаль [Текст]/ И.Д. Бутомо, А.В. Самочадин, Д.В. Усанова, Луганск: ЛГУ, 2009 г.

6. Вирт Н. Алгоритмы и структуры данных [Текст]/ Н.Вирт, Москва: Мир, 2012 г.

7. Вьюкова H.И., Галатенко В.А., Ходулев А.Б. Систематический подход к программированию [Текст]/ H.И. Вьюкова, В.А. Галатенко, А.Б. Ходулев, Москва: Наука, 2011 г.

8. Грогоно П. Программирование на языке Паскаль [Текст]/ П. Грогоно, Москва: Мир, 2012 г.

9. Керниган Б. Инструментальные средства программирования на языке Паскаль [Текст]/ Б. Керниган, Москва: Мир, 2012 г.

10. Кетков Ю.Л., Кетков. А.Ю. Свободное программное обеспечение. PASCALдля студентов и школьников [Текст]/ Ю.Л. Кетков, А.Ю.Кетков., Санкт-Петербург: БХВ-Петербург, 2011 г.

11. Кнут Д.Э. Искусство программирования [Текст]/Д.Э. Кнут, Москва: Вильямс, 2011 г.

12. Лорин Г. Сортировка и системы сортировки [Текст]/ Г. Лорин, Москва: Наука, 2011 г.

13. Мануйлов В.Г. Разработка программного обеспечения на Паскале [Текст]/ В.Г. Мануйлов, Москва: Приор, 2013 г.

14. Основы программирования [Электронный ресурс]/ Режим доступа: http://dump.ru

15. Павловская Т.А. Паскаль. Программирование на языке высокого уровня[Текст]/ Т.А. Павловская, Москва: Диалог-Мифи, 2012 г.

16. Паскаль Руководство для пользователя [Электронный ресурс]/ Режим доступа: http://dump.ru

17. Перминов О.H. Программирование на языке ПАСКАЛЬ [Текст]/ О.H. Перминов, Москва: Радио и связь, 2011 г.

18. Перминов О.H. Язык программирования Паскаль. Справочник [Текст]/ О.H. Перминов, Москва: Радио и связь, 2012 г.

19. Пильщиков В.Н. Сборник упражнений по языку Паскаль [Текст]/ В.Н. Пильщиков, Москва: Наука, 2010 г.

20. Прайс Д. Программирование на языке Паскаль. Практическое руководство [Текст]/ Д. Прайс, Москва: Наука и техника, 2010 г.

21. Программирование в алгоритмах [Электронный ресурс]/ Режим доступа: http://amberv.narod.ru/pascal.html

22. Роберт Седжвик. Фундаментальные алгоритмы на Pascal[Текст]/ Седжвик Роберт, Санкт-Петербург: ДиаСофтЮП, 2012 г.

23. Семашко Г.Л., Салтыков А.И. Программирование на языке паскаль [Текст]/ Г.Л. Семашко, А.И. Салтыков, Москва: Наука, 2009 г.

24. Тумасонис В. Паскаль. Руководство для программиста. Справочник [Текст]/ В. Тумасонис, Москва: Радио и связь, 2011 г.

25. Холл П. Вычислительные структуры. Введение в нечисловое программирование [Текст]/ П. Холл, Москва: Мир, 2010 г.

Размещено на Allbest.ru

...

Подобные документы

  • Понятие алгоритма и сортировки. Способы и алгоритмы сортировки массивов. Быстрая сортировка Хоара. Описание алгоритма "быстрой сортировки". Реализация на языке программирования. Анализ наихудшего разбиения. Вероятностные алгоритмы быстрой сортировки.

    курсовая работа [291,5 K], добавлен 22.03.2012

  • Обработка массивов элементов любого типа как главное назначение алгоритмов сортировки. Анализ наиболее используемых алгоритмов сортировки: пузырьком, выбором, вставками, методом Шелла и быстрой сортировкой. Основные требования к алгоритмам сортировки.

    реферат [189,8 K], добавлен 06.12.2014

  • Исторические предпосылки разработки тестирования. Виды электронных тестов и их роль в программировании. Этапы разработки программы для решения задачи быстрой сортировки. Пользовательский интерфейс, отладка, алгоритм программы. Файл теста в формате XML.

    курсовая работа [1,5 M], добавлен 27.01.2014

  • Исследование основных особенностей алгоритмов быстрой и поразрядной сортировки данных. Построение графиков зависимости времени сортировки от количества элементов в файле и от степени перемешенности элементов. Описания сортировки чисел и строковых данных.

    лабораторная работа [1,2 M], добавлен 23.07.2012

  • Изучение алгоритмов внутренней сортировки массивов данных, сравнение сложности их реализации и производительности. Отличительные черты сортировки включением, выбором, разделением, сортировки Шелла, обменной сортировки. Сравнение методов: плюсы и минусы.

    курсовая работа [203,8 K], добавлен 03.12.2010

  • Анализ основных алгоритмов внутренней сортировки массивов данных, сравнение сложности их реализации и производительности. Сортировка пузырьком, методами вставок, выбора, методом Шелла, быстрая сортировка. Операция разделения массива внутренней сортировки.

    курсовая работа [161,7 K], добавлен 17.12.2015

  • Сущность и порядок реализации простых методов сортировки при составлении программного алгоритма, их классификация и разновидности, отличительные признаки, характерные свойства. Особенности алгоритмов для сортировки файлов записей, содержащих ключи.

    реферат [20,7 K], добавлен 20.05.2010

  • Методы реализации алгоритмов сортировки и алгоритмов поиска на языках программирования высокого уровня. Программирование алгоритмов сортировки и поиска в рамках создаваемого программного средства на языке Delphi. Создание руководства пользователя.

    курсовая работа [1,7 M], добавлен 16.04.2012

  • Разработка программы для осуществления сортировки данных методами "Выбора" с использованием языка C# и Visual Studio 2012. Плавный метод сортировки. Основные фазы сортировки во внутреннем представлении пирамиды. Программа сортировки методами выбора.

    курсовая работа [637,6 K], добавлен 29.11.2014

  • Представление данных в цифровых автоматах, методы контроля их работы. Построение алгоритма реализации численного метода "быстрой сортировки", построение кода и блок-схемы Хемминга. Выполнение арифметических и логических исчислений с целыми числами.

    курсовая работа [98,7 K], добавлен 22.12.2009

  • Анализ структуры топологической сортировки в программной среде. Метод топологической сортировки с помощью обхода в глубину. Программа, реализующая топологическую сортировку методом Демукрона. Создание карты сайта и древовидная система разделов.

    курсовая работа [1,3 M], добавлен 22.06.2011

  • Определение понятия, видов и задач сортировки. Рассмотрение основ построения простых и улучшенных алгоритмов сортировки, анализ числа операций. Линейная и пирамидальная организация данных. Основные правила нижней оценки числа операций в алгоритмах.

    презентация [274,5 K], добавлен 19.10.2014

  • Алгоритмы сортировки методами простых вставок и пузырька. Зависимость среднего времени сортировки от числа сортируемых элементов. Функции, осуществляющие сортировку любого количества элементов методом простых вставок, на основе сортировки таблицы адресов.

    курсовая работа [557,1 K], добавлен 26.05.2010

  • Понятие и основной принцип действия алгоритмов сортировки информации. Сравнительное исследование и анализ эффективности методов сортировки Шелла и Флойда в виде графиков зависимостей количества сравнений и числа перестановок элементов от объёма данных.

    контрольная работа [573,6 K], добавлен 09.11.2010

  • Классификация и стек рекурсивных функций. Методика распознавания формулы, записанной в строке. Реализация салфетки Серпинского и задачи о Ханойских башнях. Алгоритм быстрой сортировки. Создание функции, сортирующей массив с использованием рекурсии.

    лабораторная работа [160,8 K], добавлен 06.07.2009

  • Краткое описание языка программирования С++. Алгоритм линейного выбора элемента, методов минимального (максимального) элемента и челночной сортировки. Анализ и разработка приложения, организующего сортировку массива данных пятью методами сортировки.

    реферат [614,8 K], добавлен 12.04.2014

  • Понятие стека как структуры данных, где элемент, занесенный первым, извлекается последним. Порядок добавления и удаления элементов списка. Реализация функций стека. Использование стека в алгоритме быстрой сортировки. Основные требования к элементам стека.

    презентация [591,2 K], добавлен 22.10.2013

  • Разработка программы, сортирующей массивы данных различного типа методом подсчета. Основные шаги алгоритма сортировки, ее свойства и модификация подсчетом. Целесообразность применения сортировки подсчетом. Условия эффективности алгоритма сортировки.

    лабораторная работа [438,5 K], добавлен 16.07.2015

  • Описание алгоритма сортировки с двоичным включением, выбор структур данных. Пример сортировки массива, отсортированного случайным образом. Алгоритм покрытия по методу "Построение одного кратчайшего покрытия". Волновой алгоритм поиска длиннейшего пути.

    курсовая работа [78,2 K], добавлен 24.09.2010

  • Анализ эффективности методов сортировки данных в языке Turbo Pascal. Разработка эскизного и технического проекта программы. Сортировка без и с использованием дополнительной памяти, за исключением небольшого стека (массива). Сортировка связанных списков.

    курсовая работа [359,0 K], добавлен 23.05.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.