Сортировка выбором, сортировка вставкой, сортировка заменой, сортировка обменом ("пузырьковая" сортировка) - C#
Формулировка задачи:
Создать класс, содержащий массив и реализующий алгоритмы сортировки и бинарного поиска в этом массиве.
Класс описать с помощью обобщенных алгоритмов Generics.
Сортировку реализовать одним из методов: сортировка выбором, сортировка вставкой, сортировка заменой, сортировка обменом ("пузырьковая" сортировка).
Решение задачи: «Сортировка выбором, сортировка вставкой, сортировка заменой, сортировка обменом ("пузырьковая" сортировка)»
textual
Листинг программы
class Search<T> where T : IComparable { private T[] _mas; public Search(params T[] mas) { _mas = mas; } private void Sort() { int length = _mas.Length; for (int i = 0; i < length - 1; i++) { int min = i; for (int j = i + 1; j < length; j++) { if (_mas[j].CompareTo(_mas[min]) < 0) { min = j; } } if (min != i) { T temp = _mas[i]; _mas[i] = _mas[min]; _mas[min] = temp; } } } public int? BinarySearch(T value) { // Пустой массив if (_mas.Length == 0) return null; // Вызов сортировки Sort(); // Элемент отсутствует if (_mas[0].CompareTo(value) > 0 || _mas[_mas.Length - 1].CompareTo(value) < 0) return null; int first = 0; int last = _mas.Length; while (first < last) { int mid = first + (last - first)/2; if (value.CompareTo(_mas[mid]) <= 0) last = mid; else first = mid + 1; } // Элемент найден, возвращаем индекс в массиве if (_mas[last].CompareTo(value) == 0) return last; // Элемент не найден else return null; } } public static void Main(string[] args) { int[] mas = { 10, 2, 45, 4, 6131, 10, 1, 2, 3, 4, 6, 7, 89, 1, 0, 10, 8, 9 }; var s = new Search<int>(mas); int? binarySearch = s.BinarySearch(45); if (binarySearch == null) { Console.WriteLine("Элемент не найден"); } else { Console.WriteLine("Индекс элмента {0} со значениям {1}", binarySearch, mas[(int) binarySearch]); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д