
- •Информатика
- •Ответы на вопросы
- •1). Функции ос
- •2). Функции осmsdos. Обеспечение автоматического запуска ос,
- •3). Файлы autoexec.Bat и config.Sys Начальнаязагрузка.
- •4. Файловая структура. Диски, файлы, их имен
- •Работа с каталогами.
- •Работа с экраном, принтером.
- •Общесистемные команды.
- •5. Каталоги. Корневой и текущий каталоги. Путь к файлу.
- •6. Основные командыMsdos. Команды работы с каталогами
- •7. Оболочка Norton Commander. Возможности Norton Commander Оболочка Norton Commander
- •8. Дерево каталогов вNortonCommander. Просмотр и редактирование файлов.Создание и удаление файлов. Работа с группами файлами. Оболочка Norton Commander
- •Внешний вид экрана
- •Выделение файлов
- •Работа с файлами
- •Создание каталога
- •Дерево каталогов
- •9. Панели и функциональные клавиши вNortonCommander. Меню Norton Commander, Meню пользователя.
- •Активная панель. Управление указателем
- •Смена диск
- •Управление панелями:
- •Меню Norton Commander
- •Функциональные клавиши:
- •10 Структура и общие принципы построения программы вTurboPascal'eАлфавит,лексика. Операторные скобки. Алфавит Константы. Переменные.
- •11 Типы данных вTurboPascal`е. Порядковый, вещественный, структурированныйСовместимость и преобразование типов.
- •Простые типы данных
- •12 Имена и доступ к файлам в Turbo Pascal`е
- •13 Операторы ввода' вывода вTurboPascal`е
- •14 Операции вTurboPascal`е Математические операции
- •Логические операции
- •Операции отношения
- •Оператор выбора
- •16 Метки и оператор перехода.
- •17 Операторы циклов с предусловием, постусловием и с параметром вTurbo Pascal`е
- •18 Процедуры и функции вTurboPascal`е. Локализация имен.
- •19 Локальные и глобальные переменные вTurboPascal'e.
- •20 Процедуры и функции формальные и фактические параметры вTurbo Pascal`е
- •21 Переход в графический режим в Turbo Pascal`е. Масштабирование
- •22 Процедуры и функции вTurbo Pascal`е Pascal's для работы с экраном в графическом режиме.
- •23 Алгоритмы поиска и выборки элементовиз массивов данных. Двоичный (бинарный) поиск элемента в массиве
- •Интерполяционный поиск элемента в массиве
- •Критерии Эффективности
- •Сортировка выбором
- •Сортировка пузырьком
- •Сортировка простыми вставками
- •Сортировка Шелла (Ох и презабавная вещь).
- •Пирамидальная сортировка (Эх, мать…) Вариант №1 (Вики):
- •Вариант №2 (Алголист)
- •Фаза 1 сортировки: построение пирамиды
- •Фаза 2: собственно сортировка
- •Сортировка быстрая («Чем дальше в лес, тем злее дятлы…») Вариант №1 (Вики):
- •Вариант №2 (Forum.Pascal.Net):
- •Сортировка поразрядная
- •25 Табличный редактор Excel абсолютные и относительные адреса. Запись и выполнение операций. Графическое оформление результатов.
- •Список Крематоров. Примечания и пожелания.
- •В фильме снимались:
Сортировка пузырьком
Сортировка пузырьком(англ. bubble sort) — простой алгоритм сортировки. Для понимания и реализации этот алгоритм — простейший, но эффективен он лишь для небольших массивов. Сложность алгоритма: O(n2).
Алгоритм
Алгоритм состоит в повторяющихся проходах по сортируемому массиву. За каждый проход элементы последовательно сравниваются попарно и, если порядок в паре неверный, выполняется обмен элементов. Проходы по массиву повторяются до тех пор, пока на очередном проходе не окажется, что обмены больше не нужны, что означает — массив отсортирован. При проходе алгоритма, элемент, стоящий не на своём месте, «всплывает» до нужной позиции как пузырёк в воде, отсюда и название алгоритма.
for i := n - 1 downto 1 do
for j := 1 to i do
if a[j] > a[j+1] then
begin
t := a[j];
a[j] := a[j+1];
a[j+1] := t;
end;
Сортировка простыми вставками
Сортировка вставками (англ. insertion sort) — простой алгоритм сортировки. Хотя этот метод сортировки намного менее эффективен, чем более сложные алгоритмы (такие как быстрая сортировка), у него есть ряд преимуществ:
прост в реализации
эффективен на небольших наборах данных
эффективен на наборах данных, которые уже частично отсортированы
это устойчивый алгоритм сортировки (не меняет порядок элементов, которые уже отсортированы)
может сортировать список по мере его получения
На каждом шаге алгоритма, мы выбираем один из элементов входных данных и вставляем его на нужную позицию в уже отсортированном списке, до тех пор пока набор входных данных не будет исчерпан. Выбор очередного элемента, выбираемого из исходного массива — произволен, может использоваться практически любой алгоритм выбора.
На рис (a) мы вынимаем элемент 3. Затем элементы, расположенные выше, сдвигаем вниз - до тех пор, пока не найдем место, куда нужно вставить 3. Это процесс продолжается на рис(b) для числа 1. Наконец, на рис (c) мы завершаем сортировку, поместив 2 на нужное место.
For i:=2 to Сount do
Begin
Tmp:=Arr[i];
j:=i-1;
While (Arr[j]>Tmp) and (j>0) do
Begin
Arr[j+1]:=Arr[j];
j:=j-1;
End;
Arr[j+1]:=Tmp;
End;
Сортировка Шелла (Ох и презабавная вещь).
Вариант описания №1 (длинный)
Сортировка Шелла является довольно интересной модификацией алгоритма сортировки простыми вставками.
Рассмотрим следующий алгоритм сортировки массива a[0].. a[15].
1. Вначале сортируем простыми вставками каждые 8 групп из 2-х элементов (a[0], a[8[), (a[1], a[9]), ... , (a[7], a[15]).
2. Потом сортируем каждую из четырех групп по 4 элемента (a[0], a[4], a[8], a[12]), ..., (a[3], a[7], a[11], a[15]).
В нулевой группе будут элементы 4, 12, 13, 18, в первой - 3, 5, 8, 9 и т.п.
3. Далее сортируем 2 группы по 8 элементов, начиная с (a[0], a[2], a[4], a[6], a[8], a[10], a[12], a[14]).
4. В конце сортируем вставками все 16 элементов.
Очевидно, лишь последняя сортировка необходима, чтобы расположить все элементы по своим местам. Так зачем нужны остальные ?
Hа самом деле они продвигают элементы максимально близко к соответствующим позициям, так что в последней стадии число перемещений будет весьма невелико. Последовательность и так почти отсортирована. Ускорение подтверждено многочисленными исследованиями и на практике оказывается довольно существенным.
Единственной характеристикой сортировки Шелла является приращение - расстояние между сортируемыми элементами, в зависимости от прохода. В конце приращение всегда равно единице - метод завершается обычной сортировкой вставками, но именно последовательность приращений определяет рост эффективности.
Вариант описания №2 (короткий)
Шаг 1. Упорядочиваемое множество разбивается на несколько непересекающихся подмножеств по следующему правилу:
берутся элементы неупорядоченного множества, расположенные на одинаковом расстоянии (дистанции) друг от друга. Полученные множества сортируются методом простых вставок, что позволяет уменьшить общую неупорядоченность множества.
Шаг 2. Алгоритм завершает работу, когда дистанция равна 1, иначе уменьшается дистанция между элементами и повторяется шаг 1.
Примечание:
Выбор последовательности дистанций между элементами в сортировке методом Шелла является отдельной проблемой, которая подробно рассматривается Д.Кнутом в монографии “Искусство программирования для ЭВМ. Т.3: Сортировка и поиск”.
Пример:
const N=10; {Количество элементов массива}
var a: array[1..N] of integer; {массив}
p: boolean; {флаг наличия перестановки}
l,d,i,j: integer; {служебные переменные}
...........
d:=N div 2; {Расстояние между обрабатываемыми элементами массива,
на каждом этапе алгоритма уменьшается в 2 раза вплоть до 0,
когда происходит останов алгоритма}
while d>0 do
begin
for j:=1 to N-d do {Перебор всех пар элементов массива,
расстояние между которыми равно d}
begin
l:=j {запоминаем индекс текущего элемента}
repeat
p:=false; {пока элементы не переставлялись}
if a[l]<a[l+d] then begin {если порядок нарушен, то}
c:=a[l];a[l]:=a[l+d];a[l+d]:=c; {меняем местами элементы массива}
l:=l-d; {перейдём к той паре, в которую
входит меньший из переставленных элементов}
p:=true; {запомним, что была перестановка}
end;
until (l<=1) and p; {продолжаем, пока идут перестановки и
не произошёл выход за пределы массива}
end;
d:=d div 2; {Уменьшим расстояние между сравниваемыми элементами
в 2 раза}
end;