- •2 . Пример
- •Лабораторная работа № 2
- •1 Содержание работы
- •1 Порядок выполнения лабораторной работы:
- •Задание
- •2. Пример
- •Лабораторная работа№ 3
- •1 Порядок выполнения лабораторной работы:
- •Задание
- •Часть вторая: Оператор выбора
- •1 Порядок выполнения лабораторной работы:
- •Задание
- •Группа а Таблица 7
- •Группа в
- •2. Примеры
- •Лабораторная работа№ 4
- •1 Порядок выполнения лабораторной работы:
- •Задание
- •2 Примеры
- •For (выражение1; выражение2;выражение3) {операторы; }
- •Лабораторная работа№ 5
- •1 Порядок выполнения лабораторной работы:
- •Задание
- •2. Примеры
- •3. Сортировка элементов массива
- •Сортировка выбором
- •3.2. Сортировка вставкой
- •3.3. Сортировка методом прямого выбора
- •3.4. Сортировка методом обмена
- •Лаборатоная работа № 6
- •1 Порядок выполнения лабораторной работы:
- •Задание
- •Методические указания
- •Лабораторная работа № 7
- •1 Порядок выполнения лабораторной работы:
- •Лаборатоная работа № 8
- •1 Порядок выполнения лабораторной работы:
- •Задания
- •2. Теоретические сведения
- •Год рождения – 1978
- •Лабораторная работа № 9
- •1 Порядок выполнения лабораторной работы:
- •Лабораторная работа № 10
- •1 Порядок выполнения лабораторной работы:
- •2. Задание для выполнения
- •2. Примеры
- •Лабораторная работа № 11
- •1 Порядок выполнения лабораторной работы:
- •2. Задание для выполнения
- •Варианты заданий
- •Лабораторная работа № 12
- •1 Порядок выполнения лабораторной работы:
- •2. Краткие теоретические сведения Объектно-ориентированный подход
- •Сущности и Объекты
- •Система типов
- •Инкапсуляция
- •Пример класса
- •Создание объектов. Конструкторы и деструктор
- •Наследование
- •Перегрузка функций
- •Полиморфизм
- •Функции-друзья
- •Абстрактные классы
- •Дополнительные возможности
- •Индивидуальные задания
- •2.1. Пример решения задания
- •Int windForce; // Сила ветра в баллах
- •Int startHeight; // Начальная высота
- •Int fuel; // Запас топлива
- •Результат выполнения программы:
- •Список использованной литературы
3. Сортировка элементов массива
Сортировка представляет собой процесс упорядочения элементов в массиве по возрастанию или убыванию их значений. Напримеры: если необходимо отсортиовать целочисленный массив из n элементов, то должно быть выполнено условие a[0]<=a[1]<=…<=a[n].
Существует большое количество алгоритмов сортировки, но все они базируются на трех основных :
сортировка выбором;
сортировка вставкой;
сортировка обменом
Сортировка выбором
Алгоритм сортировки выборм:
1. Найдем в массиве самый минимальный элемент и поменяем его местами с первым элементом.
2. Повторим алгоритм поиска минимального элемента, начиная со второго элемента массива и поменяем его местами со вторым элементом,
3. Описанную выше операцию поиска проводим до полного упорядочения элементов массива.
3.2. Сортировка вставкой
Один из простейших способов отсортировать массив – сортировка вставками. В обычной жизни мы сталкиваемся с этим методом при игре в карты. Чтобы отсортировать имеющиеся в вас карты, вы вынимаете карту, сдвигаете оставшиеся карты, а затем вставляете карту на нужное место. Процесс повторяется до тех пор, пока хоть одна карта находится не на месте.
Сортировка вставкой заключается в том, что сначала упорядочиваются два элемента массива. Затем делается вставка третьего элемента в соответствующее место по отношению в первым двум. Четвертый элемент помещают в список из уже упорядоченных трех элементов. Этот процесс повторяются до тех пор, пока все элементы будут упорядочены.
Если длина нашего массива равна n, нам нужно пройтись по n – 1 элементам. Каждый раз нам может понадобиться сдвинуть n – 1 других элементов. Вот почему этот метод требует довольно-таки много времени.
Сортировка вставками относится к числу методов сортировки по месту. Другими словами, ей не требуется вспомогательная память, мы сортируем элементы массива, используя только память, занимаемую самим массивом. Кроме того, она является устойчивой – если среди сортируемых ключей имеются одинаковые, после сортировки они остаются в исходном порядке.
3.3. Сортировка методом прямого выбора
Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:
1. Просматривая массив от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального.
2. Просматривая массив от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального.
3. И так далее до предпоследнего элемента.
3.4. Сортировка методом обмена
В основе алгоритма лежит обмен соседних элементов массива. Каждый элемент массива, начиная с первого, сравнивается со следующим, и если он больше следующего, то элементы меняются местами. Таким образом, элементы с меньшим значением продвигаются к началу массива (всплывают), а элементы с большим значением — к концу массива (тонут). Поэтому данный метод сортировки обменом иногда называют методом "пузырька". Этот процесс повторяется столько раз, сколько элементов в массиве, минус единица.
Следует отметить, что максимальное необходимое количество циклов проверки соседних элементов массива равно количеству элементов массива минус один.
Пример: 3.1. Отсортировать целочисленный массив по возрастанию и убыванию методом сортировка выбором.
Формы:
О
трывок
текста программы:
...
int a[n]; // объявление массива
int min; // номер наименьшего элемента
int j; // номер элемента массива, сравниваемого с наименьшим
int buf; // буфер, используемый для обмена элементами массива
int i,k;
...
for (i=0; i< n; i++)
a[i]=StrToInt(StringGrid1->Cells[i-1,0]); // ввод элементов массива
Label2->Caption="";
for (i=0; i< n; i++)
{ min=i; // определение наименьшего элемента среди a[0] … a[n]
for (j=i; j< n; j++)
if (a[j]<a[min]) min=j;
// поменять местами элементы a[i] и a[min] используя буфер обмена
buf=a[i];
a[i]=a[min]; a[min]=buf;
// отсортированный массив
for (k=0; k< n; k++)
Label2->Caption=Label2->Caption+' '+IntToStr(a[k]);
Label2->Caption=Label2->Caption+"\n"; }
Label2->Caption=Label2->Caption+"\n"+"массив отсортирован" ;}
