SlideShare a Scribd company logo
1 of 18
Сортировка ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],сложность  O( N 2 ) сложность  O( N · log N ) время N O( N 2 ) O( N · log N )
Метод пузырька Идея  – пузырек воздуха в стакане воды поднимается со дна вверх.   Для массивов  – самый маленький («легкий» элемент перемещается вверх («всплывает»). ,[object Object],[object Object],1-ый проход 2-ой проход 3-ий проход Для сортировки массива из  N  элементов нужен  N -1 проход  (достаточно поставить на свои места  N-1  элементов). 5 2 1 3 5 2 1 3 5 1 2 3 1 5 2 3 1 5 2 3 1 5 2 3 1 2 5 3 1 2 5 3 1 2 3 5
Программа 1-ый проход : сравниваются пары A[N-1]  и  A[N],  A[N-2]  и  A[N-1] … A[1]  и  A[2] A[j]  и  A[j+1] 2 -ой проход for j:=N-1 downto  2   do  if A[j] > A[j+1] then begin c:=A[j]; A[j]:=A[j+1]; A[j+1]:=c; end; 2 for j:=N-1 downto  1  do  if A[j] > A[j+1] then begin c:=A[j]; A[j]:=A[j+1]; A[j+1]:=c; end; 1 i -ый проход for j:=N-1 downto  i  do  ... i 5 2 … 6 3 1 2 … N-1 N A[1]   уже на своем месте! ! 1 5 … 3 6 1 2 … N-1 N
Программа program qq; const N = 10; var A: array[1..N] of integer; i, j, c: integer; begin {  заполнить массив  } {  вывести исходный массив  } {  вывести полученный массив  } end. for i:=1 to N-1 do begin for j:=N-1 downto i do if A[j] > A[j+1] then begin с  := A[j]; A[j] := A[j+1]; A[j+1] :=  с ; end; end; i элементы   выше  A[i]  уже поставлены   Почему цикл по  i   до   N-1 ? ?
Метод пузырька с флажком Идея  – если при выполнении метода пузырька не было обменов, массив уже отсортирован и остальные проходы не нужны.   Реализация:  переменная-флаг, показывающая, был ли обмен ;  если она равна  False ,  то выход. repeat flag := False;  {  сбросить флаг  } for j:=N-1 downto 1 do if A[j] > A[j+1] then begin с  := A[j]; A[j] := A[j+1]; A[j+1] :=  с ; flag := True;   {  поднять флаг  } end; until not flag;  {  выход при  flag=False } flag := False; flag := True; not flag; var flag: boolean;  2 1 4 3 1 2 3 4 Как улучшить ? ?
Метод пузырька с флажком i := 0; repeat i := i + 1; flag := False;  {  сбросить флаг  } for j:=N-1 downto 1 do if A[j] > A[j+1] then begin с  := A[j]; A[j] := A[j+1]; A[j+1] :=  с ; flag := True;   {  поднять флаг  } end; until not flag;  {  выход при  flag=False } i := 0; i i := i + 1;
Метод   выбора ,[object Object],[object Object],[object Object],4 3 1 2 1 3 4 2 1 2 4 3 1 2 3 4
Метод выбора for i := 1 to  N-1  do begin nMin = i   ; for j:= i+1 to N do if A[j] < A[nMin] then nMin:=j;  if nMin <> i then begin c:=A[i];  A[i]:=A[nMin];  A[nMin]:=c; end; end; N-1 N нужно  N-1   проходов   поиск минимального от  A[i]   до   A[N] если нужно, переставляем   i+1 i Можно ли убрать  if ? ?
Задания Заполнить массив из 10 элементов и отсортировать его по последней цифре. Пример:   Исходный массив:   14  25  13  30  76  58  32  11  41  97   Результат:   30  11  41  32  13  14  25  76  97  58    Заполнить массив из 10 элементов случайными числами в интервале  [ 0 .. 100 ]  и отсортировать первую половину по возрастанию, а вторую – по убыванию.   Пример:   Исходный массив:   14  25  13  30  76  58  32  11  41  97   Результат:   13  14  25  30  76  97  58  41  32  11
«Быстрая сортировка»  ( Quick Sort ) Идея  – более эффективно переставлять элементы, расположенные дальше друг от друга.   N div 2 2   шаг:  переставить элементы так:  при сортировке элементы не покидают « свою область»! 1  шаг:  выбрать некоторый элемент массива  X 3   шаг:  так же отсортировать две получившиеся области Разделяй и властвуй (англ.  divide and conquer )  Сколько перестановок нужно, если массив    отсортирован по убыванию, а надо – по    возрастанию? ? A[i] <= X A[i] >= X
«Быстрая сортировка»  ( Quick Sort ) Медиана  – такое значение  X,  что слева и справа от него в отсортированном массиве стоит одинаковое число элементов ( для этого надо отсортировать массив… ).   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],78 6 82 67 55 44 34 Как лучше выбрать  X ? ? 78 6 82 67 55 44 34
«Быстрая сортировка»  ( Quick Sort ) 78 6 82 67 55 44 34 L R 34 6 82 67 55 44 78 L R 34 6 44 67 55 82 78 L R 34 6 44 55 67 82 78 R L L   >   R   : разделение закончено !
«Быстрая сортировка»  ( Quick Sort ) procedure QSort ( first, last: integer); var L, R, c, X: integer; begin if first < last then begin X:=   A[(first   +   last) div 2]; L:=   first; R:=   last; QSort(first, R);  QSort(L, last); end; end. ограничение рекурсии while L <= R do begin while A[L]   <   X do L:=   L   +   1; while A[R]   >   X do R:=   R   -   1; if L   <=   R then begin c:=   A[L]; A[L]:=   A[R]; A[R]:=   c; L:=   L   +   1; R:=   R   -   1; end; end; разделение обмен двигаемся дальше сортируем две части
«Быстрая сортировка»  ( Quick Sort ) program qq; const N = 10; var A: array[1..N] of integer; begin {  заполнить массив  } {  вывести исходный массив на экран  } Qsort ( 1, N );  {  сортировка  } {  вывести результат  }   end . procedure QSort ( first, last: integer); ... Сложность (в среднем)  !  !
Количество перестановок (случайные данные) N QuickSort «пузырек» 10 11 24 100 184 2263 200 426 9055 500 1346 63529 1000 3074 248547 От чего зависит скорость? ? Как хуже всего выбирать  X ? ?
Задания Заполнить массив из 10 элементов случайными числами в интервале  [ -50 .. 50 ]  и отсортировать его по убыванию с помощью алгоритма быстрой сортировки. Заполнить массив из 500 элементов случайными числами в интервале  [ 0 .. 100 ] . Отсортировать его по возрастанию двумя способами – методом «пузырька» и методом «быстрой сортировки» . Вывести на экран число перестановок элементов массива в том и в другом случае. Массив выводить на экран не нужно.
сортировка массива

More Related Content

What's hot

лекция1
лекция1лекция1
лекция1ap0f30z
 
Kvadratichnaya funkciya i_ee_grafik
Kvadratichnaya funkciya i_ee_grafikKvadratichnaya funkciya i_ee_grafik
Kvadratichnaya funkciya i_ee_grafikIvanchik5
 
Алгоритмы и структуры данных осень 2013 лекция 3
Алгоритмы и структуры данных осень 2013 лекция 3Алгоритмы и структуры данных осень 2013 лекция 3
Алгоритмы и структуры данных осень 2013 лекция 3Technopark
 
Лекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыЛекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыMikhail Kurnosov
 
Лекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыЛекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыMikhail Kurnosov
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиMikhail Kurnosov
 
графики Мехралиева С.А.
графики Мехралиева С.А.графики Мехралиева С.А.
графики Мехралиева С.А.veraka
 
Алгоритмы и структуры данных осень 2013 лекция 4
Алгоритмы и структуры данных осень 2013 лекция 4Алгоритмы и структуры данных осень 2013 лекция 4
Алгоритмы и структуры данных осень 2013 лекция 4Technopark
 
Квадратичная функция
Квадратичная функцияКвадратичная функция
Квадратичная функцияYulya Borshchova
 
Лекция 1. Амортизационный анализ (amortized analysis)
Лекция 1. Амортизационный анализ (amortized analysis)Лекция 1. Амортизационный анализ (amortized analysis)
Лекция 1. Амортизационный анализ (amortized analysis)Mikhail Kurnosov
 
Лекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиЛекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиMikhail Kurnosov
 
Kvadratnaya funkciya i_ee_grafik
Kvadratnaya funkciya i_ee_grafikKvadratnaya funkciya i_ee_grafik
Kvadratnaya funkciya i_ee_grafikIvanchik5
 
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...Nikolay Grebenshikov
 
Use of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureUse of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureAndrei Poliakov
 
Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Technopark
 

What's hot (18)

лекция1
лекция1лекция1
лекция1
 
Algo 01 part01
Algo 01 part01Algo 01 part01
Algo 01 part01
 
Kvadratichnaya funkciya i_ee_grafik
Kvadratichnaya funkciya i_ee_grafikKvadratichnaya funkciya i_ee_grafik
Kvadratichnaya funkciya i_ee_grafik
 
Алгоритмы и структуры данных осень 2013 лекция 3
Алгоритмы и структуры данных осень 2013 лекция 3Алгоритмы и структуры данных осень 2013 лекция 3
Алгоритмы и структуры данных осень 2013 лекция 3
 
Лекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыЛекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмы
 
Лекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыЛекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмы
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
 
графики Мехралиева С.А.
графики Мехралиева С.А.графики Мехралиева С.А.
графики Мехралиева С.А.
 
Алгоритмы и структуры данных осень 2013 лекция 4
Алгоритмы и структуры данных осень 2013 лекция 4Алгоритмы и структуры данных осень 2013 лекция 4
Алгоритмы и структуры данных осень 2013 лекция 4
 
Алгоритмы сортировки
Алгоритмы сортировкиАлгоритмы сортировки
Алгоритмы сортировки
 
Квадратичная функция
Квадратичная функцияКвадратичная функция
Квадратичная функция
 
Лекция 1. Амортизационный анализ (amortized analysis)
Лекция 1. Амортизационный анализ (amortized analysis)Лекция 1. Амортизационный анализ (amortized analysis)
Лекция 1. Амортизационный анализ (amortized analysis)
 
Лекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиЛекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировки
 
Использование стратегии локального поиска для решения задачи об N ферзях
Использование стратегии локального поиска для решения задачи об N ферзяхИспользование стратегии локального поиска для решения задачи об N ферзях
Использование стратегии локального поиска для решения задачи об N ферзях
 
Kvadratnaya funkciya i_ee_grafik
Kvadratnaya funkciya i_ee_grafikKvadratnaya funkciya i_ee_grafik
Kvadratnaya funkciya i_ee_grafik
 
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
 
Use of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureUse of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signature
 
Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1
 

Similar to сортировка массива

1332519 (1).pptx
1332519 (1).pptx1332519 (1).pptx
1332519 (1).pptxrdes1
 
291 цикл уроков на тему массивы
291 цикл уроков на тему  массивы291 цикл уроков на тему  массивы
291 цикл уроков на тему массивыsany0507
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиMikhail Kurnosov
 
01 линейные структуры данных
01 линейные структуры данных01 линейные структуры данных
01 линейные структуры данныхFedor Tsarev
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.sharikdp
 
Презентация на тему: Обзор возможных Исполнителей в заданиях ГИА
Презентация на тему: Обзор возможных Исполнителей в заданиях ГИАПрезентация на тему: Обзор возможных Исполнителей в заданиях ГИА
Презентация на тему: Обзор возможных Исполнителей в заданиях ГИА2berkas
 
Практикум по выполнению блока с информатика
Практикум по выполнению блока с информатикаПрактикум по выполнению блока с информатика
Практикум по выполнению блока с информатикаЕкатерина Луговова
 
Алгоритмы и структуры данных весна 2014 лекция 3
Алгоритмы и структуры данных весна 2014 лекция 3Алгоритмы и структуры данных весна 2014 лекция 3
Алгоритмы и структуры данных весна 2014 лекция 3Technopark
 
Лекция 2 Сортировки, поиск и порядковые статистики
Лекция 2 Сортировки, поиск и порядковые статистикиЛекция 2 Сортировки, поиск и порядковые статистики
Лекция 2 Сортировки, поиск и порядковые статистикиsimple_people
 
Презентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 классПрезентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 класс2berkas
 
Одномерные массивы целых чисел
Одномерные массивы целых чиселОдномерные массивы целых чисел
Одномерные массивы целых чиселAndrey Dolinin
 
05 динамическое программирование
05 динамическое программирование05 динамическое программирование
05 динамическое программированиеFedor Tsarev
 
03 двоичные деревья поиска и очередь с приоритетами
03 двоичные деревья поиска и очередь с приоритетами03 двоичные деревья поиска и очередь с приоритетами
03 двоичные деревья поиска и очередь с приоритетамиFedor Tsarev
 
05 динамическое программирование
05 динамическое программирование05 динамическое программирование
05 динамическое программированиеFedor Tsarev
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовMikhail Kurnosov
 
Основы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задачОсновы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задачDEVTYPE
 

Similar to сортировка массива (20)

1332519 (1).pptx
1332519 (1).pptx1332519 (1).pptx
1332519 (1).pptx
 
291 цикл уроков на тему массивы
291 цикл уроков на тему  массивы291 цикл уроков на тему  массивы
291 цикл уроков на тему массивы
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
 
01 линейные структуры данных
01 линейные структуры данных01 линейные структуры данных
01 линейные структуры данных
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
 
Diskretn analiz
Diskretn analizDiskretn analiz
Diskretn analiz
 
Diskretn analiz
Diskretn analizDiskretn analiz
Diskretn analiz
 
Презентация на тему: Обзор возможных Исполнителей в заданиях ГИА
Презентация на тему: Обзор возможных Исполнителей в заданиях ГИАПрезентация на тему: Обзор возможных Исполнителей в заданиях ГИА
Презентация на тему: Обзор возможных Исполнителей в заданиях ГИА
 
Практикум по выполнению блока с информатика
Практикум по выполнению блока с информатикаПрактикум по выполнению блока с информатика
Практикум по выполнению блока с информатика
 
Алгоритмы и структуры данных весна 2014 лекция 3
Алгоритмы и структуры данных весна 2014 лекция 3Алгоритмы и структуры данных весна 2014 лекция 3
Алгоритмы и структуры данных весна 2014 лекция 3
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
 
Лекция 2 Сортировки, поиск и порядковые статистики
Лекция 2 Сортировки, поиск и порядковые статистикиЛекция 2 Сортировки, поиск и порядковые статистики
Лекция 2 Сортировки, поиск и порядковые статистики
 
Презентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 классПрезентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 класс
 
Одномерные массивы целых чисел
Одномерные массивы целых чиселОдномерные массивы целых чисел
Одномерные массивы целых чисел
 
05 динамическое программирование
05 динамическое программирование05 динамическое программирование
05 динамическое программирование
 
03 двоичные деревья поиска и очередь с приоритетами
03 двоичные деревья поиска и очередь с приоритетами03 двоичные деревья поиска и очередь с приоритетами
03 двоичные деревья поиска и очередь с приоритетами
 
05 динамическое программирование
05 динамическое программирование05 динамическое программирование
05 динамическое программирование
 
5
55
5
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмов
 
Основы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задачОсновы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задач
 

сортировка массива

  • 1.
  • 2.
  • 3.
  • 4. Программа 1-ый проход : сравниваются пары A[N-1] и A[N], A[N-2] и A[N-1] … A[1] и A[2] A[j] и A[j+1] 2 -ой проход for j:=N-1 downto 2 do if A[j] > A[j+1] then begin c:=A[j]; A[j]:=A[j+1]; A[j+1]:=c; end; 2 for j:=N-1 downto 1 do if A[j] > A[j+1] then begin c:=A[j]; A[j]:=A[j+1]; A[j+1]:=c; end; 1 i -ый проход for j:=N-1 downto i do ... i 5 2 … 6 3 1 2 … N-1 N A[1] уже на своем месте! ! 1 5 … 3 6 1 2 … N-1 N
  • 5. Программа program qq; const N = 10; var A: array[1..N] of integer; i, j, c: integer; begin { заполнить массив } { вывести исходный массив } { вывести полученный массив } end. for i:=1 to N-1 do begin for j:=N-1 downto i do if A[j] > A[j+1] then begin с := A[j]; A[j] := A[j+1]; A[j+1] := с ; end; end; i элементы выше A[i] уже поставлены Почему цикл по i до N-1 ? ?
  • 6. Метод пузырька с флажком Идея – если при выполнении метода пузырька не было обменов, массив уже отсортирован и остальные проходы не нужны. Реализация: переменная-флаг, показывающая, был ли обмен ; если она равна False , то выход. repeat flag := False; { сбросить флаг } for j:=N-1 downto 1 do if A[j] > A[j+1] then begin с := A[j]; A[j] := A[j+1]; A[j+1] := с ; flag := True; { поднять флаг } end; until not flag; { выход при flag=False } flag := False; flag := True; not flag; var flag: boolean; 2 1 4 3 1 2 3 4 Как улучшить ? ?
  • 7. Метод пузырька с флажком i := 0; repeat i := i + 1; flag := False; { сбросить флаг } for j:=N-1 downto 1 do if A[j] > A[j+1] then begin с := A[j]; A[j] := A[j+1]; A[j+1] := с ; flag := True; { поднять флаг } end; until not flag; { выход при flag=False } i := 0; i i := i + 1;
  • 8.
  • 9. Метод выбора for i := 1 to N-1 do begin nMin = i ; for j:= i+1 to N do if A[j] < A[nMin] then nMin:=j; if nMin <> i then begin c:=A[i]; A[i]:=A[nMin]; A[nMin]:=c; end; end; N-1 N нужно N-1 проходов поиск минимального от A[i] до A[N] если нужно, переставляем i+1 i Можно ли убрать if ? ?
  • 10. Задания Заполнить массив из 10 элементов и отсортировать его по последней цифре. Пример: Исходный массив: 14 25 13 30 76 58 32 11 41 97 Результат: 30 11 41 32 13 14 25 76 97 58 Заполнить массив из 10 элементов случайными числами в интервале [ 0 .. 100 ] и отсортировать первую половину по возрастанию, а вторую – по убыванию. Пример: Исходный массив: 14 25 13 30 76 58 32 11 41 97 Результат: 13 14 25 30 76 97 58 41 32 11
  • 11. «Быстрая сортировка» ( Quick Sort ) Идея – более эффективно переставлять элементы, расположенные дальше друг от друга. N div 2 2 шаг: переставить элементы так: при сортировке элементы не покидают « свою область»! 1 шаг: выбрать некоторый элемент массива X 3 шаг: так же отсортировать две получившиеся области Разделяй и властвуй (англ. divide and conquer ) Сколько перестановок нужно, если массив отсортирован по убыванию, а надо – по возрастанию? ? A[i] <= X A[i] >= X
  • 12.
  • 13. «Быстрая сортировка» ( Quick Sort ) 78 6 82 67 55 44 34 L R 34 6 82 67 55 44 78 L R 34 6 44 67 55 82 78 L R 34 6 44 55 67 82 78 R L L > R : разделение закончено !
  • 14. «Быстрая сортировка» ( Quick Sort ) procedure QSort ( first, last: integer); var L, R, c, X: integer; begin if first < last then begin X:= A[(first + last) div 2]; L:= first; R:= last; QSort(first, R); QSort(L, last); end; end. ограничение рекурсии while L <= R do begin while A[L] < X do L:= L + 1; while A[R] > X do R:= R - 1; if L <= R then begin c:= A[L]; A[L]:= A[R]; A[R]:= c; L:= L + 1; R:= R - 1; end; end; разделение обмен двигаемся дальше сортируем две части
  • 15. «Быстрая сортировка» ( Quick Sort ) program qq; const N = 10; var A: array[1..N] of integer; begin { заполнить массив } { вывести исходный массив на экран } Qsort ( 1, N ); { сортировка } { вывести результат } end . procedure QSort ( first, last: integer); ... Сложность (в среднем) ! !
  • 16. Количество перестановок (случайные данные) N QuickSort «пузырек» 10 11 24 100 184 2263 200 426 9055 500 1346 63529 1000 3074 248547 От чего зависит скорость? ? Как хуже всего выбирать X ? ?
  • 17. Задания Заполнить массив из 10 элементов случайными числами в интервале [ -50 .. 50 ] и отсортировать его по убыванию с помощью алгоритма быстрой сортировки. Заполнить массив из 500 элементов случайными числами в интервале [ 0 .. 100 ] . Отсортировать его по возрастанию двумя способами – методом «пузырька» и методом «быстрой сортировки» . Вывести на экран число перестановок элементов массива в том и в другом случае. Массив выводить на экран не нужно.