SlideShare a Scribd company logo
1 of 10
Язык С++ 
Квадратичные алгоритмы сортировки
Постановка задачи 
Алгоритм сортировки — это алгоритм для упорядочивания элементов в 
массиве. 
8 3 4 0 2 1 7 6 9 5 
0 1 2 3 4 5 6 7 8 9
Алгоритмы сортировки 
Квадратичные алгоритмы: 
• Сортировка пузырьком 
• Сортировка выбором 
• Сортировка вставками 
Сложность этих алгоритмов (количество сравнений, 
производимый во время работы программы, при самом 
неудачном входном массиве) имеет порядок 
2 n 
Поэтому они называются квадратичными
Сортировка пузырьком 
for(int i = 0; i < n; i++) 
for(int j = 0; j < n; j++) 
if(a[j] > a[j + 1]) swap(a[j], a[j + 1]);
Сортировка пузырьком 
for(int i = 0; i < n; i++) 
for(int j = 0; j < n; j++) 
if(a[j] > a[j + 1]) swap(a[j], a[j + 1]);
Сортировка пузырьком 
Наилучший случай: изначальный массив уже отсортирован. 
Алгоритм совершает всего один проход по массиву. 
0 1 2 3 4 5 6 7 8 9 
Наихудший случай: изначальный массив отсортирован в 
n(n 1) 
обратном порядке. Алгоритм совершает сравнений. 
2 
9 8 7 6 5 4 3 2 1 0
Сортировка выбором 
for (int i = 0; i < n - 1; i++) 
{ 
count = A[i]; key=i; 
for (int j = i + 1; j < n; j++) 
if (A[j] < A[key]) 
key = j; 
if (key != i) 
{ 
A[i] = A[key]; 
A[key] = count; 
} 
}
Сортировка выбором 
n(n 1) 
Этот алгоритм совершает сравнений на любом 
2 
входном массиве. Но, в отличие от алгоритма сортировки 
пузырьком, производит всего n - 1 операций обмена.
Сортировка вставками 
for(int i = 1; i < n; i++) 
for(int j = i; j > 0 && A[j-1] > A[j]; j--) 
swap(A[j-1], A[j]);
Сортировка вставками 
Как и сортировка выбором, этот алгоритм совершает 
сравнений. 
n(n 1) 
2 
Алгоритм сортировки вставками может быть значительно 
ускорен при работе с большими массивами, если вместо 
обычного линейного поиска использовать бинарный

More Related Content

What's hot

Алгоритмы и структуры данных осень 2013 лекция 3
Алгоритмы и структуры данных осень 2013 лекция 3Алгоритмы и структуры данных осень 2013 лекция 3
Алгоритмы и структуры данных осень 2013 лекция 3
Technopark
 
Лекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыЛекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмы
Mikhail Kurnosov
 
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
Nikolay Grebenshikov
 
Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1
Technopark
 
понятие функции
понятие функциипонятие функции
понятие функции
ttku
 
Алгоритмы и структуры данных осень 2013 лекция 4
Алгоритмы и структуры данных осень 2013 лекция 4Алгоритмы и структуры данных осень 2013 лекция 4
Алгоритмы и структуры данных осень 2013 лекция 4
Technopark
 
график функции y=IxI
график функции y=IxIграфик функции y=IxI
график функции y=IxI
LanaNork
 

What's hot (18)

Алгоритмы и структуры данных осень 2013 лекция 3
Алгоритмы и структуры данных осень 2013 лекция 3Алгоритмы и структуры данных осень 2013 лекция 3
Алгоритмы и структуры данных осень 2013 лекция 3
 
Лекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиЛекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировки
 
Лекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыЛекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмы
 
Лекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовЛекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмов
 
Лекция 1. Амортизационный анализ (amortized analysis)
Лекция 1. Амортизационный анализ (amortized analysis)Лекция 1. Амортизационный анализ (amortized analysis)
Лекция 1. Амортизационный анализ (amortized analysis)
 
Алгоритмы поиска
Алгоритмы поискаАлгоритмы поиска
Алгоритмы поиска
 
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
 
Algo 01 part01
Algo 01 part01Algo 01 part01
Algo 01 part01
 
Proizvodnaya i grafiki_funkcii
Proizvodnaya i grafiki_funkciiProizvodnaya i grafiki_funkcii
Proizvodnaya i grafiki_funkcii
 
Funk tang b kotang
Funk tang  b kotangFunk tang  b kotang
Funk tang b kotang
 
Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1
 
Linejnaya funkciya
Linejnaya funkciyaLinejnaya funkciya
Linejnaya funkciya
 
учебная презентация. преобразование графиков функций
учебная презентация. преобразование графиков функцийучебная презентация. преобразование графиков функций
учебная презентация. преобразование графиков функций
 
понятие функции
понятие функциипонятие функции
понятие функции
 
Алгоритмы и структуры данных осень 2013 лекция 4
Алгоритмы и структуры данных осень 2013 лекция 4Алгоритмы и структуры данных осень 2013 лекция 4
Алгоритмы и структуры данных осень 2013 лекция 4
 
Pokazatelnaya funkciya
Pokazatelnaya funkciyaPokazatelnaya funkciya
Pokazatelnaya funkciya
 
график функции y=IxI
график функции y=IxIграфик функции y=IxI
график функции y=IxI
 
Kak postroit grafik_funkcii_y_f_l_m_iz_grafika_fun
Kak postroit grafik_funkcii_y_f_l_m_iz_grafika_funKak postroit grafik_funkcii_y_f_l_m_iz_grafika_fun
Kak postroit grafik_funkcii_y_f_l_m_iz_grafika_fun
 

Viewers also liked

урок вишивання вітальної листівки
урок вишивання вітальної листівкиурок вишивання вітальної листівки
урок вишивання вітальної листівки
cytqlth1988
 
презентация 1 кафедри вчителів предметів естетичного циклу
презентация 1 кафедри вчителів предметів естетичного циклупрезентация 1 кафедри вчителів предметів естетичного циклу
презентация 1 кафедри вчителів предметів естетичного циклу
cytqlth1988
 

Viewers also liked (11)

Ingles
InglesIngles
Ingles
 
Exercise and you!
Exercise and you!Exercise and you!
Exercise and you!
 
Алгоритмы сортировки
Алгоритмы сортировкиАлгоритмы сортировки
Алгоритмы сортировки
 
Consequence's of flexible management by Amjad Raza
Consequence's of flexible management  by Amjad RazaConsequence's of flexible management  by Amjad Raza
Consequence's of flexible management by Amjad Raza
 
урок вишивання вітальної листівки
урок вишивання вітальної листівкиурок вишивання вітальної листівки
урок вишивання вітальної листівки
 
FC Digital Marketing
FC Digital MarketingFC Digital Marketing
FC Digital Marketing
 
Target Recruitment & HR Solutions profile
Target Recruitment & HR Solutions profileTarget Recruitment & HR Solutions profile
Target Recruitment & HR Solutions profile
 
De allergenenwetgeving in de horeca | Conpax Verpakkingen
De allergenenwetgeving in de horeca | Conpax VerpakkingenDe allergenenwetgeving in de horeca | Conpax Verpakkingen
De allergenenwetgeving in de horeca | Conpax Verpakkingen
 
Compendial evaluation for evaluation of crude and herbal drugs
Compendial evaluation for evaluation of crude and herbal drugsCompendial evaluation for evaluation of crude and herbal drugs
Compendial evaluation for evaluation of crude and herbal drugs
 
презентация 1 кафедри вчителів предметів естетичного циклу
презентация 1 кафедри вчителів предметів естетичного циклупрезентация 1 кафедри вчителів предметів естетичного циклу
презентация 1 кафедри вчителів предметів естетичного циклу
 
презентація1
презентація1презентація1
презентація1
 

Similar to Алгоритмы сортировки

1332519 (1).pptx
1332519 (1).pptx1332519 (1).pptx
1332519 (1).pptx
rdes1
 
Алгоритмы и структуры данных весна 2014 лекция 3
Алгоритмы и структуры данных весна 2014 лекция 3Алгоритмы и структуры данных весна 2014 лекция 3
Алгоритмы и структуры данных весна 2014 лекция 3
Technopark
 
сортировка
сортировкасортировка
сортировка
aianami
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Mikhail Kurnosov
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
sharikdp
 
сортировка массива
сортировка массивасортировка массива
сортировка массива
longe7
 
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Nikolay Grebenshikov
 
9 1.1 - системы счисления
9 1.1 - системы счисления9 1.1 - системы счисления
9 1.1 - системы счисления
jula-mam
 

Similar to Алгоритмы сортировки (20)

1332519 (1).pptx
1332519 (1).pptx1332519 (1).pptx
1332519 (1).pptx
 
Лекция 2 Сортировки, поиск и порядковые статистики
Лекция 2 Сортировки, поиск и порядковые статистикиЛекция 2 Сортировки, поиск и порядковые статистики
Лекция 2 Сортировки, поиск и порядковые статистики
 
Алгоритмы и структуры данных весна 2014 лекция 3
Алгоритмы и структуры данных весна 2014 лекция 3Алгоритмы и структуры данных весна 2014 лекция 3
Алгоритмы и структуры данных весна 2014 лекция 3
 
сортировка
сортировкасортировка
сортировка
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
 
Лекция 1 Скорость роста функций
Лекция 1 Скорость роста функцийЛекция 1 Скорость роста функций
Лекция 1 Скорость роста функций
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
 
Основы SciPy
Основы SciPyОсновы SciPy
Основы SciPy
 
сортировка массива
сортировка массивасортировка массива
сортировка массива
 
Олег Алистратов — Сортировка списков в Perl и Python
Олег Алистратов — Сортировка списков в Perl и PythonОлег Алистратов — Сортировка списков в Perl и Python
Олег Алистратов — Сортировка списков в Perl и Python
 
Тема Системы счисления
Тема Системы счисленияТема Системы счисления
Тема Системы счисления
 
Лекция 14 Матрицы
Лекция 14 МатрицыЛекция 14 Матрицы
Лекция 14 Матрицы
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
 
Java 8 puzzlers
Java 8 puzzlersJava 8 puzzlers
Java 8 puzzlers
 
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...
 
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
 
Основы NumPy
Основы NumPyОсновы NumPy
Основы NumPy
 
Лекция 1. Амортизационный анализ (Amortized analysis)
Лекция 1. Амортизационный анализ (Amortized analysis)Лекция 1. Амортизационный анализ (Amortized analysis)
Лекция 1. Амортизационный анализ (Amortized analysis)
 
9 1.1 - системы счисления
9 1.1 - системы счисления9 1.1 - системы счисления
9 1.1 - системы счисления
 
Системы счисления
Системы счисленияСистемы счисления
Системы счисления
 

Алгоритмы сортировки

  • 1. Язык С++ Квадратичные алгоритмы сортировки
  • 2. Постановка задачи Алгоритм сортировки — это алгоритм для упорядочивания элементов в массиве. 8 3 4 0 2 1 7 6 9 5 0 1 2 3 4 5 6 7 8 9
  • 3. Алгоритмы сортировки Квадратичные алгоритмы: • Сортировка пузырьком • Сортировка выбором • Сортировка вставками Сложность этих алгоритмов (количество сравнений, производимый во время работы программы, при самом неудачном входном массиве) имеет порядок 2 n Поэтому они называются квадратичными
  • 4. Сортировка пузырьком for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) if(a[j] > a[j + 1]) swap(a[j], a[j + 1]);
  • 5. Сортировка пузырьком for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) if(a[j] > a[j + 1]) swap(a[j], a[j + 1]);
  • 6. Сортировка пузырьком Наилучший случай: изначальный массив уже отсортирован. Алгоритм совершает всего один проход по массиву. 0 1 2 3 4 5 6 7 8 9 Наихудший случай: изначальный массив отсортирован в n(n 1) обратном порядке. Алгоритм совершает сравнений. 2 9 8 7 6 5 4 3 2 1 0
  • 7. Сортировка выбором for (int i = 0; i < n - 1; i++) { count = A[i]; key=i; for (int j = i + 1; j < n; j++) if (A[j] < A[key]) key = j; if (key != i) { A[i] = A[key]; A[key] = count; } }
  • 8. Сортировка выбором n(n 1) Этот алгоритм совершает сравнений на любом 2 входном массиве. Но, в отличие от алгоритма сортировки пузырьком, производит всего n - 1 операций обмена.
  • 9. Сортировка вставками for(int i = 1; i < n; i++) for(int j = i; j > 0 && A[j-1] > A[j]; j--) swap(A[j-1], A[j]);
  • 10. Сортировка вставками Как и сортировка выбором, этот алгоритм совершает сравнений. n(n 1) 2 Алгоритм сортировки вставками может быть значительно ускорен при работе с большими массивами, если вместо обычного линейного поиска использовать бинарный