Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Реализация и тестирование хэш-таблицы↑ Стр 1 из 2Следующая ⇒ Содержание книги
Поиск на нашем сайте
Реализация и тестирование алгоритма бинарного поиска В данной лабораторной работе нужно реализовать алгоритм бинарного поиска (поиска делением пополам). Алгоритм в качестве входных данных получает массив отсортированных по возрастанию целых чисел int[] и число, которое необходимо найти. В ответ возвращает индекс наденного элемента массива, либо -1, если число отсутствует в массиве. Стартовый шаблон программы: using System;
namespace ConsoleApplication { class Program { public static int BinarySearch(int[] array, int value) { //код поиска значения value в массиве array }
static void Main(string[] args) { TestNegativeNumbers(); TestNonExistentElement();
Console.ReadKey(); }
private static void TestNegativeNumbers() { //Тестирование поиска в отрицательных числах int[] negativeNumbers = new[] {-5, -4, -3, -2}; if (BinarySearch(negativeNumbers, -3)!= 2) Console.WriteLine("! Поиск не нашёл число -3 среди чисел {-5, -4, -3, -2}"); else Console.WriteLine("Поиск среди отрицательных чисел работает корректно"); } private static void TestNonExistentElement() { //Тестирование поиска отсутствующего элемента int[] negativeNumbers = new[] {-5, -4, -3, -2}; if (BinarySearch(negativeNumbers, -1) >= 0) Console.WriteLine("! Поиск нашёл число -1 среди чисел {-5, -4, -3, -2}"); else Console.WriteLine("Поиск отсутствующего элемента вернул корректный результат работает корректно"); } } } В программе нужно реализовать проверки: 1. Поиск одного элемента в массиве из 5 элементов 2. Поиск среди отрицательных чисел (реализован в шаблоне) 3. Поиск отсутствующего в массиве элемента (реализован в шаблоне) 4. Поиск элемента, повторяющегося несколько раз 5. Поиск в пустом массиве (содержащем 0 элементов) 6. Поиск в массиве из 100001 элементов При разработке тестирующий функций помните, что исходный массив, передаваемый функции должен быть отсортирован. Реализация и тестирование алгоритма быстрой сортировки В данной лабораторной работе нужно разработать алгоритм быстрой сортировки https://ru.wikipedia.org/wiki/Быстрая_сортировка Прототип функции: public static void QuickSort(int[] array) Размер массива можно получить, обратившись к array.Length. Для генерации случайных чисел воспользуйтесь классом Random var rnd = new Random();
rnd.Next(); // возвращает случайное число от 0 до int.MaxValue rnd.Next(0, 5); // возвращает случайное число от 0 до 4 включительно Нужно реализовать следующие проверки: 1. Сортировка массива из трёх элементов. После сортировки второй элемент больше первого, третий больше второго 2. Сортировка массива из 100 одинаковых числе работает корректно 3. Сортировка массива из 1000 случайных элементов. Проверить что 10 случайных пар элементов массива после сортировки упорядочены (их пары больший тот, чей индекс больше) 4. Сортировка пустого массива работает корректно 5. Сортировка массива из 1 500 000 000 элементов работает корректно (если на вашем компьютере 8+ Гб памяти) Реализация и тестирование хэш-таблицы В данной лабораторной работе необходимо реализовать Хэш-таблицу (https://ru.wikipedia.org/wiki/%D0%A5%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0). Хэш-таблица – это ассоциативный контейнер, позволяющий быстро находить объекты по т.н. ключу. Структура данных должна иметь следующую структуру публичных методов:
class HashTable { /// <summary> /// Конструктор контейнера /// </summary> /// <param name="size">Размер хэ-таблицы</param> public HashTable(int size) {
}
/// <summary> /// Метод складывающий пару ключь-значение в таблицу /// </summary> /// <param name="key"></param> /// <param name="value"></param> public void PutPair(object key, object value) {
}
/// <summary> /// Поиск значения по ключу /// </summary> /// <param name="key">Ключь</param> /// <returns>Значение, null если ключ отсутствует</returns> public object GetValueByKey(object key) {
} } На время разработки можете использовать системный контейнер Dictionary<Key,Value>, однако после завершения разработки тестов от него нужно избавиться. Системный контейнер не обязательно получает размер в параметре конструктора: он поддерживает динамическое расширение. Вашей структуре не обязательно поддерживать эту возможность: можно полагаться на то, что в неё не будет добавлено больше чем size элементов. Тесты: 1. Добавление трёх элементов, поиск трёх элементов 2. Добавление одного и того же ключа дважды с разными значениями сохраняет последнее добавленное значение 3. Добавление 10000 элементов в структуру и поиск одного из них 4. Добавление 10000 элементов в структуру и поиск 1000 недобавленных ключей, поиск которых должен вернуть null Реализация и тестирование алгоритма бинарного поиска В данной лабораторной работе нужно реализовать алгоритм бинарного поиска (поиска делением пополам). Алгоритм в качестве входных данных получает массив отсортированных по возрастанию целых чисел int[] и число, которое необходимо найти. В ответ возвращает индекс наденного элемента массива, либо -1, если число отсутствует в массиве. Стартовый шаблон программы: using System;
namespace ConsoleApplication { class Program { public static int BinarySearch(int[] array, int value) { //код поиска значения value в массиве array }
static void Main(string[] args) { TestNegativeNumbers(); TestNonExistentElement();
Console.ReadKey(); }
private static void TestNegativeNumbers() { //Тестирование поиска в отрицательных числах int[] negativeNumbers = new[] {-5, -4, -3, -2}; if (BinarySearch(negativeNumbers, -3)!= 2) Console.WriteLine("! Поиск не нашёл число -3 среди чисел {-5, -4, -3, -2}"); else Console.WriteLine("Поиск среди отрицательных чисел работает корректно"); } private static void TestNonExistentElement() { //Тестирование поиска отсутствующего элемента int[] negativeNumbers = new[] {-5, -4, -3, -2}; if (BinarySearch(negativeNumbers, -1) >= 0) Console.WriteLine("! Поиск нашёл число -1 среди чисел {-5, -4, -3, -2}"); else Console.WriteLine("Поиск отсутствующего элемента вернул корректный результат работает корректно"); } } } В программе нужно реализовать проверки: 1. Поиск одного элемента в массиве из 5 элементов 2. Поиск среди отрицательных чисел (реализован в шаблоне) 3. Поиск отсутствующего в массиве элемента (реализован в шаблоне) 4. Поиск элемента, повторяющегося несколько раз 5. Поиск в пустом массиве (содержащем 0 элементов) 6. Поиск в массиве из 100001 элементов При разработке тестирующий функций помните, что исходный массив, передаваемый функции должен быть отсортирован. Реализация и тестирование алгоритма быстрой сортировки В данной лабораторной работе нужно разработать алгоритм быстрой сортировки https://ru.wikipedia.org/wiki/Быстрая_сортировка Прототип функции: public static void QuickSort(int[] array) Размер массива можно получить, обратившись к array.Length. Для генерации случайных чисел воспользуйтесь классом Random var rnd = new Random();
rnd.Next(); // возвращает случайное число от 0 до int.MaxValue rnd.Next(0, 5); // возвращает случайное число от 0 до 4 включительно Нужно реализовать следующие проверки: 1. Сортировка массива из трёх элементов. После сортировки второй элемент больше первого, третий больше второго 2. Сортировка массива из 100 одинаковых числе работает корректно 3. Сортировка массива из 1000 случайных элементов. Проверить что 10 случайных пар элементов массива после сортировки упорядочены (их пары больший тот, чей индекс больше) 4. Сортировка пустого массива работает корректно 5. Сортировка массива из 1 500 000 000 элементов работает корректно (если на вашем компьютере 8+ Гб памяти) Реализация и тестирование хэш-таблицы В данной лабораторной работе необходимо реализовать Хэш-таблицу (https://ru.wikipedia.org/wiki/%D0%A5%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0). Хэш-таблица – это ассоциативный контейнер, позволяющий быстро находить объекты по т.н. ключу. Структура данных должна иметь следующую структуру публичных методов:
class HashTable { /// <summary> /// Конструктор контейнера /// </summary> /// <param name="size">Размер хэ-таблицы</param> public HashTable(int size) {
}
/// <summary> /// Метод складывающий пару ключь-значение в таблицу /// </summary> /// <param name="key"></param> /// <param name="value"></param> public void PutPair(object key, object value) {
}
/// <summary> /// Поиск значения по ключу /// </summary> /// <param name="key">Ключь</param> /// <returns>Значение, null если ключ отсутствует</returns> public object GetValueByKey(object key) {
} } На время разработки можете использовать системный контейнер Dictionary<Key,Value>, однако после завершения разработки тестов от него нужно избавиться. Системный контейнер не обязательно получает размер в параметре конструктора: он поддерживает динамическое расширение. Вашей структуре не обязательно поддерживать эту возможность: можно полагаться на то, что в неё не будет добавлено больше чем size элементов. Тесты: 1. Добавление трёх элементов, поиск трёх элементов 2. Добавление одного и того же ключа дважды с разными значениями сохраняет последнее добавленное значение 3. Добавление 10000 элементов в структуру и поиск одного из них 4. Добавление 10000 элементов в структуру и поиск 1000 недобавленных ключей, поиск которых должен вернуть null
|
||||
Последнее изменение этой страницы: 2016-04-18; просмотров: 236; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.139.28 (0.005 с.) |