КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Сортировка методом прямого обмена
Классификация методов сортировки редко бывает осмысленной. Оба разбиравшихся до этого метода можно тоже рассматривать как «обменные» сортировки. Однако в данном разделе мы рассмотрим метод, где обмен местами двух элементов представляет собой характернейшую особенность процесса. Изложенный ниже алгоритм прямого обмена основывается на сравнении и смене мест для пары соседних элементов и продолжении этого процесса до тех пор, пока не будут упорядочены все элементы (рисунок 21).
Как и в упоминавшемся методе прямого выбора, мы повторяем проходы по массиву, сдвигая каждый раз наименьший элемент оставшейся последовательности к левому концу массива. Если мы будем рассматривать массивы как вертикальные, а не горизонтальные построения, то элементы можно интерпретировать как пузырьки в чане с водой, причем вес каждого соответствует его ключу. В этом случае при каждом проходе один пузырек как бы поднимается до уровня, соответствующего его весу. Такой метод широко известен под именем пузырьковая сортировка. |
Лекция № 10 |
Написал Lekka | ||||||||||||
07.11.2008 | ||||||||||||
Директивы препроцессора
В интегрированную среду подготовки программ на Си или в компилятор языка как обязательный компонент входит препроцессор. Назначение препроцессора – обработка исходного текста программы до ее компиляции. Стадии препроцессорной обработки выполняются последовательно.
Для управления препроцессорном используются команды препроцессора, каждая из которых помещается на отдельной строке и начинается с символа #.
Обобщенный формат директивы препроцессора:
#имя_директивы лексемы_препроцессора
Перед символом # и после него в директиве разрешены пробелы. Определены следующие препроцессорные директивы:
#define – определение макроса или препроцессорного идентификатора;
#include – включение текста из файла;
#undef – отмена определения макроса или идентификатора;
#if – проверка условия-выражения;
#ifdef – проверка определенности идентификатора;
#ifndef – проверка неопределенности идентификатора;
#else – начало альтернативной ветви для #if;
#endif – окончание условной директивы #if;
#elif – составная директива #else#if;
#line – смена номера следующей ниже строки;
#error – формирование текста сообщения об ошибке трансляции;
#pragma – действия, предусмотренные реализацией;
# - пустая директива.
Наиболее часто используются 2 директивы: #include и #define. Директива #include подключает стандартные библиотеки или файлы, реализованные самим программистом, для включения в программу текста из данных файлов.
Директиву #define можно использовать 2 способами: для задания правила замены в тексте и как определение некоторого макроса.
Пример [программа pr_19]:
Дата добавления: 2014-01-20; Просмотров: 431; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |