- •Введение
- •Структура программы на vbScript
- •Переменные
- •Подтипы данных и функции преобразования типов
- •Константы
- •Встроенная функция вывода данных MsgBox
- •Встроенная функция ввода данных InputBox
- •Комментарии
- •Непрерывные строки
- •Операторы и операции
- •Пример 4
- •Пример 5
- •Пример 6
- •Пример 7
- •Пример 8
- •Пример 9
- •1.4 Задачи для самостоятельного решения
- •Логические операции
- •Оператор условного перехода: If … Then
- •2.3 Демонстрационные примеры Пример 1
- •Пример 2
- •Пример 3
- •Пример 4
- •Пример 5
- •Пример 6
- •Пример 7
- •2.4 Задачи для самостоятельного решения
- •Лабораторная работа 3. Операторы цикла в программах на vbscript
- •3.1 Цель работы
- •3.2 Теоретические сведения
- •For…Next (цикл со счетчиком)
- •Как выбрать, какой из циклов использовать в программе?
- •Пример 10
- •Пример 11
- •Пример 12
- •Пример 13
- •Пример 14
- •Пример 15
- •Пример 16
- •3.4 Задачи для самостоятельного решения
- •Передача параметров с помощью ключевых слов ByVal и ByRef
- •Функции
- •Пример 4
- •Пример 5
- •4.4 Задачи для самостоятельного решения
- •Лабораторная работа 5. Программирование алгоритмов при помощи рекурсивных процедур и функций
- •5.1 Цель работы
- •5.2 Теоретические сведения
- •5.3 Демонстрационные примеры Пример 1
- •Пример 2
- •Пример 3
- •Пример 4
- •5.4 Задачи для самостоятельного решения
- •Лабораторная работа 6. Массивы
- •6.1 Цель работы
- •6.2 Теоретические сведения
- •Перебор элементов массива
- •6.3 Демонстрационные примеры Пример 1
- •Пример 2
- •Пример 3
- •Пример 4
- •Пример 5
- •Пример 6
- •Пример 7
- •Пример 8
- •6.4 Задачи для самостоятельного решения "Заполнение" массивов
- •Массивы. Исследование и поиск
- •Модификация массивов
- •Лабораторная работа 7. Алгоритмы поиска в регулярном типе данных. Простейшие классические алгоритмы. Сортировка в массиве
- •7.1 Цель работы
- •7.2 Теоретические сведения
- •Сортировка обменом
- •Сортировка выбором
- •Сортировка включениями
- •Сортировка бинарными включениями
- •Шейкер-сортировка
- •7.3 Демонстрационные примеры Пример 1
- •Пример 2
- •Пример 3
- •Пример 4
- •Пример 5
- •Пример 6
- •Пример 7
- •Пример 8
- •Пример 9
- •Пример 10
- •7.4 Задачи для самостоятельного решения
- •Лабораторная работа 8. Строковый тип данных в программах на vbscript
- •8.1 Цель работы
- •8.2 Теоретические сведения
- •Другие функции необходимые для работы со строками
- •Основные функции для работы с датой и временем:
- •8.3 Демонстрационные примеры Пример 1
- •Пример 2
- •Пример 3
- •Пример 4
- •Пример 5
- •Пример 6
- •Пример 7
- •Пример 8
- •Пример 9
- •8.4 Задачи для самостоятельного решения Модификаторы
- •“Вычеркиватели” (частный случай модификаторов)
- •Наблюдатели (предикаты)
- •Подсчет
- •Поиск в словах
- •Литература
- •Данчул а.Н. Информатика: Учебник. – м.: рагс , 2004 г. - 528 с.
- •Содержание
Сортировка обменом
Сортировка обменом - метод, при котором все соседние элементы массива попарно сравниваются друг с другом и меняются местами в том случае, если предшествующий элемент больше последующего. В результате этого, максимальный элемент постепенно смещается вправо и, в конце концов, занимает крайнее правое место в массиве, после чего он исключается из дальнейшей обработки. Затем процесс повторяется, и свое место занимает второй по величине элемент, который также исключается из дальнейшего рассмотрения. Так продолжается до тех пор, пока вся последовательность не будет упорядочена. Сортировку обменом называют еще «пузырьковой» (сравнение с всплытием пузырьков воздуха в жидкости).
Совершенно ясно, что если на очередном проходе массива не будет сделано ни одного обмена, то массив уже упорядочен. Если мы будем фиксировать этот факт, то несущественное усложнение процедуры сортировки может дать существенный выигрыш в скорости.
(См. Пример 1.)
Сортировка выбором
При этом методе сортировки в неупорядоченной последовательности выбирается минимальный элемент, который исключается из дальнейшей обработки, а оставшаяся последовательность элементов принимается за исходную. Процесс повторяется до тех пор, пока все элементы не будут выбраны. Очевидно, что все выбранные элементы образуют упорядоченную последовательность.
Выбранный в исходной последовательности минимальный элемент размещается на предназначенном ему месте упорядоченной последовательности несколькими способами:
а) минимальный элемент после i-го просмотра перемещается на i-е место (i=1,2,3,...) другого специально созданного массива, а в старом, исходном, на месте выбранного размещается какое-то очень большое число, превосходящее по величине любой элемент сортируемого массива. Измененный таким образом массив принимается за исходный, и осуществляется следующий просмотр;
(См. Пример 2.)
б) минимальный элемент после i-го просмотра перемещается на i-е место (i=1,2,3,...) заданного массива, а элемент с i-го места - на место выбранного. После каждого просмотра упорядоченные элементы (от первого до элемента с индексом i) исключаются из дальнейшей обработки, т.е. размер каждого последующего обрабатываемого массива на единицу меньше размера предыдущего.
Сортировка включениями
При сортировке включениями из неупорядоченной последовательности элементов поочередно выбирается каждый элемент, сравнивается с предыдущим (уже упорядоченным) списком и помещается на соответствующее место в последнем.
(См. Пример 3.)
Сортировка бинарными включениями
По количеству сравнений алгоритм сортировки бинарными включениями лучше, чем рассмотренные выше алгоритмы. Различными авторами предпринимались попытки доказательства оптимальности алгоритма сортировки бинарными включениями и даже печатно сообщалось о якобы найденном доказательстве. Позднее выяснилось, что и этот алгоритм не оптимален, т.к. он требует восемь сравнений для упорядочивания пяти чисел, а на самом деле достаточно семи сравнений.
(См. Пример 4.)
Шейкер-сортировка
(См. Пример 5.)
7.3 Демонстрационные примеры Пример 1
' Имя файла Sort_Bubble.vbs
' Программа демонстрирует сортировку вектора по неубыванию методом обмена
' или (другое название) пузырьком.
Option Explicit
Dim sorted, i, j, s, B, x
B=Array (5, 3, 2, 1, 0, -1) ' вектор, который должен быть отсортирован пузырьком
sorted=false ' логическая переменная
While not sorted ' пока вектор не отсортирован...
sorted=true
For i=0 to 4
If B(i+1)<B(i) Then ' если левый элемент больше правого, то поменять их местами
x=B(i)
B(i)=B(i+1)
B(i+1)=x
For j=0 to 5 ' в переменную s записывается изменённый вектор
s=s&B(j)&" "
Next
s=s&VbCrLf
Sorted=false
End If
Next
Wend
MsgBox "Задача:"&vbCrLf&_
"Отсортировать вектор (5, 3, 2, 1, 0, -1)"&vbCrLf&vbCrLf&_
"Пошаговая сортировка:"&vbCrLf&_
s&vbCrLf,vbInformation, "Сортировка пузырьком:"