СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Презентация по теме "Сортировка массива"

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Презентация по теме "Сортировка массива"»

Сортировка  одномерного массива

Сортировка одномерного массива

Устный опрос : Как описать числовой массив в программе? Назовите основные числовые типы. Как описать массив строковых переменных в программе? Как осуществить ввод массива с клавиатуры? Как осуществить ввод массива с помощью оператора случайных чисел?

Устный опрос :

  • Как описать числовой массив в программе? Назовите основные числовые типы.
  • Как описать массив строковых переменных в программе?
  • Как осуществить ввод массива с клавиатуры?
  • Как осуществить ввод массива с помощью оператора случайных чисел?
Понятие «Сортировка» Сортировкой числового массива называют расположение его элементов в возрастающем или убывающем по величине порядке. Сортировка символьного массива заключается в расположении элементов, например, по алфавиту или по длине строк. Сортировка массивов включена в качестве стандартной операции во многие системы прикладного обеспечения (MS Word, MS Excel и др). Под сортировкой массива подразумевается процесс перестановки элементов с целью упорядочивания их в соответствии с каким-либо критерием. Существует достаточно много методов (алгоритмов) сортировки массивов. Мы рассмотрим два из них: метод прямого выбора и метод обмена (метод “пузырька”)

Понятие «Сортировка»

Сортировкой числового массива называют расположение его элементов в возрастающем или убывающем по величине порядке.

Сортировка символьного массива заключается в расположении элементов, например, по алфавиту или по длине строк. Сортировка массивов включена в качестве стандартной операции во многие системы прикладного обеспечения (MS Word, MS Excel и др).

Под сортировкой массива подразумевается процесс перестановки элементов с целью упорядочивания их в соответствии с каким-либо критерием.

Существует достаточно много методов (алгоритмов) сортировки массивов. Мы рассмотрим два из них: метод прямого выбора и метод обмена (метод “пузырька”)

Метод прямого выбора   Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так: Просматривая массив с первого и до последнего элемента, найти минимальный и поменять его местами с первым элементом.  Просматривая массив со второго и до последнего элемента, найти минимальный и поменять его местами со вторым элементом.  И, так далее, до последнего элемента.

Метод прямого выбора

Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:

  • Просматривая массив с первого и до последнего элемента, найти минимальный и поменять его местами с первым элементом.
  • Просматривая массив со второго и до последнего элемента, найти минимальный и поменять его местами со вторым элементом.
  • И, так далее, до последнего элемента.
Пример работы алгоритма:   Исходный массив: 8, 3, 6, 1, 4 ( меняются местами 8 и 1) После первого шага: 1 , 3, 6, 8, 4 ( меняются местами 3 и 3) После второго шага: 1 , 3 , 6, 8, 4 (меняются местами 6 и 4) После третьего шага: 1 , 3 , 4 , 8, 6 (меняются местами 8 и 6) После четвертого шага: 1 , 3 , 4 , 6 , 8

Пример работы алгоритма:

  • Исходный массив: 8, 3, 6, 1, 4

( меняются местами 8 и 1)

  • После первого шага: 1 , 3, 6, 8, 4

( меняются местами 3 и 3)

  • После второго шага: 1 , 3 , 6, 8, 4

(меняются местами 6 и 4)

  • После третьего шага: 1 , 3 , 4 , 8, 6

(меняются местами 8 и 6)

  • После четвертого шага: 1 , 3 , 4 , 6 , 8
 Program Vibor;  const   SIZE = 5;  var   a: array [1..SIZE] of integer;   i ,j,buf,k : integer;  begin   for k:=1 to SIZE do read (a [k]);   for i:=1 to SIZE -1 do  { поиск минимального элемента в части массива от a [i] до a[SIZE]}  begin    min:= i;   for j:= i + 1 to SIZE do   if a [j]  {поменяем местами a [min] и a [i]}   buf:= a [i];   a [i]:= a [min];  a [min]:= buf;  end; { выведем массив}  writeln (‘ Массив отсортирован ^’);   for k:= 1 to SIZE do write (a [k], ‘ ‘);  readln;  end.   Метод  прямого  выбора

Program Vibor;

const

SIZE = 5;

var

a: array [1..SIZE] of integer;

i ,j,buf,k : integer;

begin

for k:=1 to SIZE do read (a [k]);

for i:=1 to SIZE -1 do

{ поиск минимального элемента в части массива от a [i] до a[SIZE]}

begin

min:= i;

for j:= i + 1 to SIZE do

if a [j]

{поменяем местами a [min] и a [i]}

buf:= a [i];

a [i]:= a [min];

a [min]:= buf;

end;

{ выведем массив}

writeln (‘ Массив отсортирован ^’);

for k:= 1 to SIZE do write (a [k], ‘ ‘);

readln;

end.

Метод прямого выбора

Алгоритм  выбора использует вложенные циклы.  Внешний цикл (счетчик шагов) последовательно выбирает номер элемента массива, куда следует записывать найденный в неупорядоченной части массива минимальный элемент. Внутренний цикл перебирает номера неупорядоченных элементов при поиске минимального элемента. Для внешнего цикла достаточно шагов на один меньше, чем элементов в массиве.

Алгоритм выбора использует вложенные циклы.

Внешний цикл (счетчик шагов) последовательно выбирает номер элемента массива, куда следует записывать найденный в неупорядоченной части массива минимальный элемент.

Внутренний цикл перебирает номера неупорядоченных элементов при поиске минимального элемента. Для внешнего цикла достаточно шагов на один меньше, чем элементов в массиве.

Метод простого обмена  (пузырьковая сортировка) В основе алгоритма лежит обмен соседних элементов массива. Каждый элемент массива, начиная с первого, сравнивается со следующим и, если он больше следующего, то элементы меняются местами. Таким образом, элементы с меньшим значением продвигаются к началу массива, а элементы с большим значением – к концу массива (всплывают), поэтому этот метод иногда называют методом “пузырька”. Этот процесс повторяется на единицу меньше раз, чем элементов в массиве.

Метод простого обмена (пузырьковая сортировка)

В основе алгоритма лежит обмен соседних элементов массива.

Каждый элемент массива, начиная с первого, сравнивается со следующим и, если он больше следующего, то элементы меняются местами.

Таким образом, элементы с меньшим значением продвигаются к началу массива, а элементы с большим значением – к концу массива (всплывают), поэтому этот метод иногда называют методом “пузырька”.

Этот процесс повторяется на единицу меньше раз, чем элементов в массиве.

 Метод пузырька Идея – пузырек воздуха в стакане воды поднимается со дна вверх.  Для массивов – самый маленький («легкий» элемент перемещается вверх («всплывает»). 1-ый проход начиная снизу, сравниваем два соседних элемента; если они стоят «неправильно», меняем их местами за 1 проход по массиву один элемент (самый маленький) становится на свое место 5 1 2 3 5 2 1 3 5 1 2 5 2 1 3 3    2-ой проход 3-ий проход 1 2 5 3 1 2 3 5 Для сортировки массива из N элементов нужен  N -1 проход (достаточно поставить на свои места N-1 элементов). 1 5 2 3 1 1 2 5 5 2 3 3

Метод пузырька

Идея – пузырек воздуха в стакане воды поднимается со дна вверх.

Для массивов – самый маленький («легкий» элемент перемещается вверх («всплывает»).

1-ый проход

  • начиная снизу, сравниваем два соседних элемента; если они стоят «неправильно», меняем их местами
  • за 1 проход по массиву один элемент (самый маленький) становится на свое место

5

1

2

3

5

2

1

3

5

1

2

5

2

1

3

3

2-ой проход

3-ий проход

1

2

5

3

1

2

3

5

Для сортировки массива из N элементов нужен N -1 проход (достаточно поставить на свои места N-1 элементов).

1

5

2

3

1

1

2

5

5

2

3

3

Пример работы алгоритма простого обмена   Исходный массив: 8, 3, 6, 4, 1 (последовательно меняются местами 8 и 3,8 и 6, 8 и 4, 8 и 1) После первого шага: 3, 6, 4, 1, 8  (далее последовательно меняются местами 6 и 4, 6 и 1) После второго шага: 3, 4, 1, 6, 8 (последовательно меняются местами 4 и 1) После третьего шага: 3, 1, 4, 6, 8 (последовательно меняются местами 3 и 1) После четвертого шага: 1, 3, 4, 6, 8

Пример работы алгоритма простого обмена

  • Исходный массив: 8, 3, 6, 4, 1 (последовательно меняются местами 8 и 3,8 и 6, 8 и 4, 8 и 1)
  • После первого шага: 3, 6, 4, 1, 8

(далее последовательно меняются местами 6 и 4, 6 и 1)

  • После второго шага: 3, 4, 1, 6, 8 (последовательно меняются местами 4 и 1)
  • После третьего шага: 3, 1, 4, 6, 8 (последовательно меняются местами 3 и 1)
  • После четвертого шага: 1, 3, 4, 6, 8
a [k + 1] then begin { обменяем k-й и (k + 1)-й элементы } buf:= a [k]; a [k]:= a [k + 1]; a [k + 1]:= buf; end; writeln (‘ Массив отсортирован .’); for k:= 1 to SIZE do write (a [k], ‘ ’); readln; end. Метод обмена " width="640"

Program Obmen;

const

SIZE=5

var

a: array [1..SIZE] of integer;

i , k , buf: integer;

begin

write (‘ Введите’ ,SIZE: 3, ’целых в одной строке через пробел’ );

for k:= 1 to SIZE do read (a [k]);

for i:= 1 to SIZE - 1do

for k:= 1 to SIZE – i do

if a [k] a [k + 1] then

begin

{ обменяем k-й и (k + 1)-й элементы }

buf:= a [k];

a [k]:= a [k + 1];

a [k + 1]:= buf;

end;

writeln (‘ Массив отсортирован .’);

for k:= 1 to SIZE do write (a [k], ‘ ’);

readln;

end.

Метод обмена

 Под сортировкой последовательности понимают процесс перестановки элементов последовательности в определенном порядке: по возрастанию, убыванию, последней цифре, сумме делителей, … . Под сортировкой последовательности понимают процесс перестановки элементов последовательности в определенном порядке: по возрастанию, убыванию, последней цифре, сумме делителей, … . Пусть дана последовательность элементов a 1 , a 2 , ... , a n . Элементы этой последовательности – данные произвольного типа, на котором определено отношение порядка “  ” (меньше) такое, что любые два различных элемента сравнимы между собой. Сортировка означает перестановку элементов последовательности a k1 , a k2 ,  ... , a kn такую, что a k 1  a k 2  a kn .

Под сортировкой последовательности понимают процесс перестановки элементов последовательности в определенном порядке: по возрастанию, убыванию, последней цифре, сумме делителей, … .

Под сортировкой последовательности понимают процесс перестановки элементов последовательности в определенном порядке: по возрастанию, убыванию, последней цифре, сумме делителей, … .

Пусть дана последовательность элементов a 1 , a 2 , ... , a n .

Элементы этой последовательности – данные произвольного типа, на котором определено отношение порядка ” (меньше) такое, что любые два различных элемента сравнимы между собой.

Сортировка означает перестановку элементов последовательности a k1 , a k2 , ... , a kn такую, что

a k 1 a k 2 a kn .

 Основными требованиями к программе сортировки массива являются эффективность по времени и экономное использование памяти. Это означает, что алгоритм не должен использовать дополнительных массивов и пересылок из массива a в эти массивы. Постановка задачи сортировки в общем виде предполагает, что существуют только два типа действий с данными сортируемого типа: сравнение двух элементов ( x  y ) и пересылка элемента ( x := y ). сравнение двух элементов ( x  y ) и пересылка элемента ( x := y ). Поэтому удобная мера сложности алгоритма сортировки массива a[1..n] : по времени – количество сравнений C (n)  и количество пересылок M ( n ) . по времени – количество сравнений C (n)  и количество пересылок M ( n ) .

Основными требованиями к программе сортировки массива являются эффективность по времени и экономное использование памяти.

Это означает, что алгоритм не должен использовать дополнительных массивов и пересылок из массива a в эти массивы.

Постановка задачи сортировки в общем виде предполагает, что существуют только два типа действий с данными сортируемого типа:

  • сравнение двух элементов ( x y ) и пересылка элемента ( x := y ).
  • сравнение двух элементов ( x y )
  • и пересылка элемента ( x := y ).

Поэтому удобная мера сложности алгоритма сортировки массива a[1..n] :

  • по времени – количество сравнений C (n) и количество пересылок M ( n ) .
  • по времени – количество сравнений C (n)
  • и количество пересылок M ( n ) .

Практическая часть Задача1 . На соревнованиях по прыжкам в длину получен массив результатов b(n). Определить три лучших результата. Массив сформировать с помощью функции R A ND OM . Задача2. Составить программу, которая выполняет сортировку фамилий в исходном массиве по алфавиту.

Практическая часть

Задача1 . На соревнованиях по прыжкам в длину получен массив результатов b(n). Определить три лучших результата. Массив сформировать с помощью функции R A ND OM .

Задача2. Составить программу, которая выполняет сортировку фамилий в исходном массиве по алфавиту.

Успехов Вам!

Успехов Вам!


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!