Содержание
- 2. Рекурсия Рекурсия – это прием программирования, при котором функция или программа вызывает сама себя непосредственно или
- 3. #include using namespace std; long int Fact(long int N) { // если произведена попытка вычислить факториал
- 4. Быстрая сортировка Из массива выбирается некоторый опорный элемент a[i]. Запускается функция разделения массива, которая перемещает все
- 5. void quickSortR(T a[], long N) { // На входе - массив a[], a[N] - его последний
- 6. Двоичный поиск Ищем срединный элемент и сравниваем с искомым значением Если значения равны, поиск завершаем Если
- 8. Скачать презентацию
Слайд 2Рекурсия
Рекурсия – это прием программирования, при котором функция или программа вызывает сама
Рекурсия
Рекурсия – это прием программирования, при котором функция или программа вызывает сама

себя непосредственно или косвенно.
Например, вычисление факториала легко можно представить рекурсивной функцией
!N = N * !(N-1)
Например, вычисление факториала легко можно представить рекурсивной функцией
!N = N * !(N-1)
Слайд 3#include
using namespace std;
long int Fact(long int N)
{
// если произведена попытка вычислить
#include
using namespace std;
long int Fact(long int N)
{
// если произведена попытка вычислить

факториал нуля
if (N < 1) return 0;
// если вычисляется факториал единицы
// именно здесь производится выход из рекурсии
else if (N == 1) return 1;
// любое другое число вызывает функцию заново с формулой N-1
else return N * Fact(N-1);
}
void main()
{
long number = 5;
// первый вызов рекурсивной функции
long result = Fact(number);
cout << "Result " << number << "! is - " << result << "\n";
}
if (N < 1) return 0;
// если вычисляется факториал единицы
// именно здесь производится выход из рекурсии
else if (N == 1) return 1;
// любое другое число вызывает функцию заново с формулой N-1
else return N * Fact(N-1);
}
void main()
{
long number = 5;
// первый вызов рекурсивной функции
long result = Fact(number);
cout << "Result " << number << "! is - " << result << "\n";
}
Слайд 4Быстрая сортировка
Из массива выбирается некоторый опорный элемент a[i].
Запускается функция разделения массива, которая
Быстрая сортировка
Из массива выбирается некоторый опорный элемент a[i].
Запускается функция разделения массива, которая
![Быстрая сортировка Из массива выбирается некоторый опорный элемент a[i]. Запускается функция разделения](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/364462/slide-3.jpg)
перемещает все ключи, меньшие, либо равные a[i], слева от него, а все ключи, большие, либо равные a[i] — справа, теперь массив состоит из двух частей, причем элементы левой меньше элементов правой.
Если в подмассиве более двух элементов, рекурсивно запускаем для них ту же функцию.
В конце получится полностью отсортированная последовательность.
Если в подмассиве более двух элементов, рекурсивно запускаем для них ту же функцию.
В конце получится полностью отсортированная последовательность.
Слайд 5void quickSortR(T a[], long N) {
// На входе - массив a[], a[N]
void quickSortR(T a[], long N) {
// На входе - массив a[], a[N]
![void quickSortR(T a[], long N) { // На входе - массив a[],](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/364462/slide-4.jpg)
- его последний элемент.
// поставить указатели на исходные места
long i = 0, j = N;
T temp, p;
p = a[ N/2 ]; // центральный элемент
// процедура разделения
do {
while ( a[i] < p ) i++;
while ( a[j] > p ) j--;
if (i <= j) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
i++;
j--;
}
} while ( i <= j );
// рекурсивные вызовы, если есть, что сортировать
if ( j > 0 ) quickSortR(a, j);
if ( N > i ) quickSortR(a+i, N-i);
}
// поставить указатели на исходные места
long i = 0, j = N;
T temp, p;
p = a[ N/2 ]; // центральный элемент
// процедура разделения
do {
while ( a[i] < p ) i++;
while ( a[j] > p ) j--;
if (i <= j) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
i++;
j--;
}
} while ( i <= j );
// рекурсивные вызовы, если есть, что сортировать
if ( j > 0 ) quickSortR(a, j);
if ( N > i ) quickSortR(a+i, N-i);
}
Слайд 6Двоичный поиск
Ищем срединный элемент и сравниваем с искомым значением
Если значения равны, поиск
Двоичный поиск
Ищем срединный элемент и сравниваем с искомым значением
Если значения равны, поиск

завершаем
Если искомое больше срединного элемента, то повторяете 1 шаг с правой половиной массива
Если искомое меньше срединного элемента, то повторяете 1 шаг с левой половиной
! Работает только для упорядоченных массивов.
Алгоритм описан для массива отсортированного по возрастанию
Если искомое больше срединного элемента, то повторяете 1 шаг с правой половиной массива
Если искомое меньше срединного элемента, то повторяете 1 шаг с левой половиной
! Работает только для упорядоченных массивов.
Алгоритм описан для массива отсортированного по возрастанию
- Предыдущая
Программирование на языке С
Организация доступа к электронным информационным ресурсам в Белорусском государственном университете
Культурно-историческая идентификация новых государств в условиях формирования наций на примере постсоциалистических стран
Управление дорожной безопасности Барс
Уральская горно-металлургическая компания
Эффективность бюджетно-налоговой и кредитно-денежной политик в зависимости от параметров модели IS - LM Эффективность любой поли
Введение в онкопатологию
О старте совместного проекта академии минпросвещения России и Вологодской области чемпионат управленческих команд
Экология и Экономика
Агрессивный контент Интернета Порнография Наркопропаганда Терроризм Экстремизм Сектантство Неэтичная реклама.
Формы размножения организмов
Презентация на тему "Использование инновационных педтехнологий как средство повышения качества образования школьников" - ск
Презентация на тему Цветаева Марина Ивановна
Тепличный комплекс
Социально-психологическое тестирование на территории Пермского края в 2020-2021 учебном году. Информация для обучающихся
Презентация на тему Построение правильных многоугольников циркулем и линейкой
History of life
Схемы размещения двигателей на дозвуковых самолетах
Изменение глаголов по лицам и числам (4 класс)
1Т-11Т-21ТК-11ТК-21Э-11Э-21С-11Т-1а2Т-12Т-22ТК-11Э-1а2Э-1 2С-12БУХ3БУХ2Т-1а3Т-13Т-23ТК-13ТК-22Э-1а3Э-13ЭК-13С-13Т-1а4Т-14Т-24Т-34ТК-13Э-1а4Э-1 ПОНЕДЕЛЬНИКПОНЕДЕЛЬНИК.
Стили принятия управленческих решений
Интеллектуальная викторина Обычаи и традиции разных стран
Освоение космоса
Психологические особенности внутрисемейных отношений в семьях с созависимостью
Самостоятельные и служебные части речи
Н.Д. Телешов (1867-1957)
Клетка. Структура клетки. Органоиды клетки
Presentation Title
БОЛЬШИЕ ПЕЛЛЕТНЫЕ ЗАВОДЫ 3-ГО ПОКОЛЕНИЯ С ТЕХНОЛОГИЕЙ ESPP.