Суть алгоритма - последовательный перебор элементов и проверка их на соответствие критериям поиска.
Примеры задач:
Дан список целых чисел. Список заполняется с клавиатуры. Найдите индекс первого положительного числа, которое делится на 2.
Дан список заполненный строковыми значениями. Найдите индекс первой строки, которая имеет чётное количество символов или начинается и заканчивается на один и тот же символ.
Бинарный поиск работает только для отсортированных списков.
Найдём в списке значение равное key. Пусть mid - индекс элемента в середине, Kmid - значение элемента в середине списка:
Задача алгоритма сортировки - расположить элементы массива таким образом, чтобы определённое отношение выполнялось для любой пары соседних элементов.
a[i] < a[i+1]длина a[i] < длина a[i+1]алфавитный порядокВозможны две оптимизации:
n-1 сравнениеn-2 сравненийНа каждом проходе алгоритма ищем минимальное значение в неотсортированной части массива и ставим его на текущую позицию.
В языке Python есть встроенная функция для сортировки последовательностей - sorted().
Функция может принимать в качестве аргумента любую последовательность и возвращает список отсортированных элементов.
Кроме последовательности, функция sorted() может принимать аргумент с именем key - функцию-ключ.
Функция применяется к каждому элементу последовательности перед началом сортировки.
Названия групп в электронном расписании сортируются в лексикографическом порядке. Организовать сортировку групп по году поступления.
Используем функцию в качестве ключа сортировки:
Хэш таблица хранит каждое значение под уникальным ключом.
Компоненты:
Задача - сохранить отметку за экзамен с привязкой к имени студента.
Словарь – это набор ключей и соответствующих им значений.
Данные в словаре не упорядочены.
В Python словарю соответствует тип dict.
Квадратные скобки [] позволяют добавить и получить значение из словаря.
Ключами в словаре могут быть значению любого неизменяемого типа: int, float, str.
# целочисленный ключ, строковое значение
num_names={1:"Один", 2: "Два", 3:"Три"}
# вещественный ключ, строковое значение
dec_names={1.5:"Одна целая, пять десятых", 2.5: "Два с половиной"}
# строковый ключ, целочисленное значение
roman_nums = {'I':1, 'II':2, 'III':3, 'IV':4, 'V':5}
# строковый ключ, значение - список
shop = {'фрукты': ['ананас', 'банан'], 'овощи': ['огурец', 'капуста']}shop["фрукты"][1]?
dictdict
| Метод | Значение |
|---|---|
<словарь>.get(<ключ>)<словарь>.get(<ключ>, <значение>) |
Если в словаре есть <ключ> - получить его значение, иначе вернуть <значение> |
<словарь_1>.update(<словарь_2>) |
Обновить содержимое <словарь_1> парами ключ-значение из <словарь_2> |
<словарь>.keys() |
Получить список ключей |
<словарь>.values() |
Получить список значений |
Пользователь вводит с клавиатуры строку с текстом. Программа должна подсчитать, сколько раз в тексте встречается каждое из слов. Слова в тексте разделяются пробелом.