44. Создайте DLL, включающую сервисный класс с тремя методами поиска по образцу в массивах типа double. Постройте консольный и Windows-проекты, использующие эти методы поиска. Получите оценки времени работы методов поиска.
45. Создайте DLL, включающую сервисный класс с тремя методами поиска по образцу в массивах типа StringBuilder. Постройте консольный и Windows-проекты, использующие эти методы поиска. Получите оценки времени работы методов поиска.
46. Создайте DLL, включающую сервисный класс с тремя методами поиска по образцу в массивах типа int. Постройте консольный и Windows-проекты, использующие эти методы поиска. Получите оценки времени работы методов поиска.
47. Создайте DLL, включающую сервисный класс с тремя методами поиска по образцу в массивах типа Person. Класс Person определите самостоятельно. Реализуйте возможность поиска по различным полям объекта (по имени, возрасту, адресу). Постройте Windows-проект, использующий эти методы поиска.
48. Создайте DLL, включающую сервисный класс с тремя методами поиска по образцу в массивах типа Point. Класс Point определите самостоятельно. Реализуйте возможность поиска по различным полям объекта (по декартовым координатам точки, по полярным координатам). Постройте Windows-проект, использующий эти методы поиска.
49. Создайте DLL, включающую сервисный класс с тремя методами поиска по образцу в массивах типа Account. Класс Account определите самостоятельно. Реализуйте возможность поиска по различным полям объекта (по номеру банковского счета, по размеру вклада). Постройте Windows-проект, использующий эти методы поиска.
50. На основе приведенного описания класса Service<T> создайте собственный универсальный класс, включающий различные варианты метода поиска. Создайте Windows-интерфейс для работы с этим классом по образцу интерфейса, приведенного на рис. 7.9.
Задача сортировки формулируется достаточно просто. Дан массив Ar с элементами типа T. Тип (класс) T является упорядоченным типом, так что для него определена операция сравнения элементов. Отсортировать массив можно по возрастанию или по убыванию. В первом случае для всех элементов массива выполняется условие , во втором - справедливо условие . Порядок сортировки можно задавать как параметр метода, что сказывается лишь на операции сравнения элементов - "больше" или "меньше".
Методов сортировки великое множество. Классическим трудом является третий том "Искусства программирования" Д. Кнута [Кнут], который так и называется "Сортировки". Одним из основных критериев классификации методов сортировки является сложность метода сортировки - временная и емкостная - T(n) и P(n). В первом случае нас интересует время сортировки произвольного массива из n элементов, во втором - дополнительная память, требуемая в процессе сортировки. Говоря о времени сортировки, можно рассматривать минимальное, максимальное или среднее время сортировки. Время сортировки определяется числом требуемых операций, которые, в свою очередь, разделяются на операции сравнения элементов и операции обмена элементами, когда два элемента Ar[i] и Ar[j] обмениваются местами.