Структуры и алгоритмы обработки данных

Слайд 2

Цели и задачи курса Цель – научиться технике конструирования и формулирования

Цели и задачи курса

Цель – научиться технике конструирования и формулирования алгоритмов,

описывающих некоторые типовые процессы обработки данных.
Задачи:
Алгоритмы и структуры данных взаимосвязаны.
2. Использовать приемы, не зависящие от конкретных приложений.
Язык инструмент, а не самоцель.
Абстрактные типы данных и структуры данных — не одно и то же.
От сложного к простому через рекурсию.
Оценка эффективности алгоритмов – составная часть компьютерного решения задач.
Слайд 3

Структура курса (1 часть) Указатели Динамические структуры данных Абстрактные типы данных

Структура курса (1 часть)

Указатели

Динамические структуры данных

Абстрактные типы данных
(стеки, очереди, деревья)

Рекурсия

Эффективность алгоритмов

Управление

памятью
Слайд 4

Структура курса (2 часть) Хеш-таблицы Сортировка Поиск Комбинаторные алгоритмы

Структура курса (2 часть)

Хеш-таблицы

Сортировка

Поиск

Комбинаторные алгоритмы

Слайд 5

Основные понятия - память Фон-Неймановская архитектура Однородность памяти Область кода Область

Основные понятия - память

Фон-Неймановская
архитектура

Однородность памяти

Область кода

Область данных
(статическая)

Область данных
(динамическая)

Свободная память
(куча)

Память программы

Куча

Слайд 6

Основные понятия - данные тип данных - множество значений, которые может

Основные понятия - данные

тип данных - множество значений, которые может принимать

переменная

структура данных - набор переменных, возможно, различных типов данных, объединенных определенным образом (способ организации данных)

int a; // объявление переменной a целого типа
float b; // объявление переменной с плавающей запятой
char d = 's'; // инициализация переменной типа char

struct str_name
{ int member_1;
float member_2;
};

Абстрактный тип данных - это тип данных, который предоставляет для работы с его элементами определённый набор функций.

class Stack
{ …………………
void Push(int i);
int Pop();  
bool isEmpty();
………………….
};

Слайд 7

Основные понятия - алгоритм Алгоритм - точная конечная последовательность действий, обеспечивающая

Основные понятия - алгоритм

Алгоритм - точная конечная последовательность действий, обеспечивающая получение

требуемого результата из заданных исходных данных.

Основные свойства алгоритмов:
Дискретность
Определенность (детерминированность)
Результативность
Массовость
Эффективность

Алгоритм Евклида.
Найти наибольший общий делитель для целых m>n.

Начало

m;n;

r=m%n;

r==0

m=n;n=r;

Конец

Да

Нет

n;

Слайд 8

Слайд 9

Слайд 10

Слайд 11

Слайд 12