Сортировка методом пузырька, выбором (Pascal) Кокарева Светлана Ивановна.

Презентация:



Advertisements
Похожие презентации
Массивы
Advertisements

Одномерный массив. Цель урока: познакомить учащихся с понятием одномерный массив Задачи: дать определение массива дать представление: об описании массива.
Массивы в ТР. Массив (таблица) Одномерный (содержит одну строку или один столбец) Многомерный ( содержит N строк, M столбцов) Например, температура.
Методы сортировки массива. Сортировкой или упорядочением массива называется расположение его элементов по возрастанию (или убыванию). Если не все элементы.
Организация данных в виде массива. Массив - это упорядоченный набор фиксированного количества некоторых значений, называемых элементами массива. Каждый.
Массивы Массив – именованный набор с фиксированным количеством однотипных данных Массив одномерный многомерный Общий вид элемента массива (двумерный массив.
Сортировка одномерного массива Учитель информатики Александрова Т.П.
Массивы уроки 3, 4. Одномерные массивы именованный набор с фиксированным количеством однотипных данных. именованный набор с фиксированным количеством.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
ОДНОМЕРНЫЕ МАССИВЫ. СПОСОБЫ ЗАДАНИЯ ОДНОМЕРНЫХ МАССИВОВ. Понятие массива.
Массивы Паскаль. Массивы - это Заранее известное число однотипных элементов Элементы (каждое данное массива) имеют общее имя(имя массива) и тип (тип элементов.
Язык программирования Паскаль 9 часть. Массивы.
Обработка линейных массивов. МассивМассив – совокупность однотипных данных, хранящихся в последовательных ячейках памяти и имеющих общее имя. элементами.
Массивы – структурированный тип данных, состоящий из фиксированного числа элементов одинакового типа, имеющих общее имя. Массив.
Программирование на языке Паскаль Урок Сортировка массивов Рыжикова С. В. Учитель информатики МОУ СОШ 2 г. Волжского Волгоградской обл.
Задача Заполнить одномерный целочисленный массив, состоящий из 15 элементов, случайными числами (диапазон задайте сами). Вывести его на экран. Отсортировать.
1 Программирование на языке Паскаль Максимальный элемент массива.
Радионик Рената 9Б. Массив – это обозначаемая одним именем последовательность однотипных элементов. Место каждого элемента в этой последовательности определяется.
Тема урока Тема урока Массивы. Массив – это именованный набор с фиксированным количеством однотипных данных. В массивы объединены результаты экспериментов,
Транксрипт:

Сортировка методом пузырька, выбором (Pascal) Кокарева Светлана Ивановна

Общее понятие о массивах Предположим, что программа работает с большим количеством однотипных данных. Скажем около ста разных целых чисел нужно обработать, выполнив над ними те или иные вычисления. Как вы себе представляете 100 переменных в программе? И для каждой переменной нужно написать одно и тоже выражение вычисления значения? Это очень неэффективно. Есть более простое решение. Это использование такой структуры (типа) данных как массив. Массив представляет собой последовательность ячеек памяти, в которых хранятся однотипные данные. При этом существует всего одно имя переменной связанной с массивом, а обращение к конкретной ячейке происходит по ее индексу (номеру) в массиве. Нужно четко понимать, что индекс ячейки массива не является ее содержимым. Содержимым являются хранимые в ячейках данные, а индексы только указывают на них. Действия в программе над массивом осуществляются путем использования имени переменной, связанной с областью данных, отведенной под массив.

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

Общее понятие о массивах Помним, все элементы определенного массива имеют один и тот же тип. У разных массивов типы данных могут различаться. Например, один массив может состоять из чисел типа integer, а другой – из чисел типа real. Индексы элементов массива обычно целые числа, однако могут быть и символами, а также описываться другими порядковыми типами. Массив можно создать несколькими способами. Обращение к определенному элементу массива осуществляется путем указания имени переменной массива и в квадратных скобках индекса элемента. Простой массив является одномерным. Он представляет собой линейную структуру.

Способы создания одномерных массивов var ch: array [1..11] of char; h: char; i: integer; begin for i := 1 to 11 do read (ch[i]); for i := 1 to 11 do write (ch[i]:3); readln end. В примере выделяется область памяти под массив из 11 символов. Их индексы от 1 до 11. В процессе выполнения программы пользователь вводит 11 любых символов (например, q, w, e, 2, t, 9, u, I, I, o, p), которые записываются в ячейки массива. Текущее значение переменной i в цикле for используется в качестве индекса массива. Второй цикл for отвечает за вывод элементов массива на экран.

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

Сортировка методом пузырька Алгоритм решения задачи: Существует множество методов сортировки. Одни из них являются более эффективными, другие – проще для понимания. Достаточно простой для понимания является сортировка методом пузырька, который также называют методом простого обмена. В чем же он заключается, и почему у него такое странное название: "метод пузырька"? Как известно воздух легче воды, поэтому пузырьки воздуха всплывают. Это просто аналогия. В сортировке методом пузырька по возрастанию более легкие (с меньшим значением) элементы постепенно "всплывают" в начало массива, а более тяжелые друг за другом опускаются на дно (в конец массива).

Сортировка методом пузырька Алгоритм и особенности этой сортировки таковы: 1. При первом проходе по массиву элементы попарно сравниваются между собой: первый со вторым, затем второй с третьим, следом третий с четвертым и т.д. Если предшествующий элемент оказывается больше последующего, то их меняют местами. 2. Не трудно догадаться, что постепенно самое большое число оказывается последним. Остальная часть массива остается не отсортированной, хотя некоторое перемещение элементов с меньшим значением в начало массива наблюдается. 3. При втором проходе незачем сравнивать последний элемент с предпоследним. Последний элемент уже стоит на своем месте. Значит, число сравнений будет на одно меньше. 4. На третьем проходе уже не надо сравнивать предпоследний и третий элемент с конца. Поэтому число сравнений будет на два меньше, чем при первом проходе. 5. В конце концов, при проходе по массиву, когда остаются только два элемента, которые надо сравнить, выполняется только одно сравнение. 6. После этого первый элемент не с чем сравнивать, и, следовательно, последний проход по массиву не нужен. Другими словами, количество проходов по массиву равно m-1, где m – это количество элементов массива. 7. Количество сравнений в каждом проходе равно m-i, где i – это номер прохода по массиву (первый, второй, третий и т.д.). 8. При обмене элементов массива обычно используется "буферная" (третья) переменная, куда временно помещается значение одного из элементов.

Сортировка

Алгоритм сортировки методом пузырька

Программа на языке Паскаль: const m = 10; var arr: array[1..m] of integer; i, j, k: integer; begin randomize; write ('Исходный массив: '); for i := 1 to m do begin arr[i] := random(256); write (arr[i]:4); end; writeln; writeln; for i := 1 to m-1 do for j := 1 to m-i do if arr[j] > arr[j+1] then begin k := arr[j]; arr[j] := arr[j+1]; arr[j+1] := k end; write ('Отсортированный массив: '); for i := 1 to m do write (arr[i]:4); writeln; readln end

Сортировка выбором Задача: Требуется отсортировать массив по возрастанию. Алгоритм решения задачи: 1. Для этого можно воспользоваться следующим алгоритмом. 2. Найти максимальный элемент (max) в массиве (arr). 3. Поместить его на последнее место (j). 4.Элемент, находившийся в конце массива переместить на место, где прежде находился max. 5. Уменьшить просматриваемую область массива на единицу (j – 1). 6. Снова найти максимальный элемент в оставшейся области. 7. Поместить его в конец просматриваемой области массива. 8. и т.д.

Программа на языке Pascal const n = 10; var arr: array[1..n] of byte; max, id_max, i, j: byte; begin randomize; for i := 1 to n do begin arr[i] := random(256); write(arr[i]:4) end; writeln; j := n; while j > 1 do begin max := arr[1]; id_max := 1; for i := 2 to j do if arr[i] > max then begin max := arr[i]; id_max := i end; arr[id_max] := arr[j]; arr[j] := max; j := j - 1 end; for i := 1 to n do write(arr[i]:4); readln end.

Переходим к набору программ сортировки Обе сортировки должны быть реализованы обучающимися!!! Поняты и приняты на вооружение алгоритмы сортировки для решения задач программирования!