Процедура GetTime.
В Паскале есть стандартная процедура модуля Dos – GetTime (выполнить её в Pascal ABC не получится – т.к. в нём нет модуля Dos).
Она узнаёт, сколько времени в момент её выполнения.
Вот её объявление:
procedure GetTime(var Hour, Minute, Second, Hund: word);
Её параметрами должны быть обязательно переменные. После её выполнения в этих переменных будет содержаться время того момента, когда выполнится эта процедура:
Hour - Час (значение от 0 до 23)
Minute - Минута (значение от 0 до 59)
Second - Секунда (значение от 0 до 59)
Hund - Сотая часть секунды (значение от 0 до 99)
Используя эту процедуру, мы можем занести в переменные время до выполнения нужного нам действия, и в другие переменные время после выполнения нужного нам действия.
После этого можно посчитать разницу во времени, и эта разница будет длительностью выполнения замеряемого действия.
Участок кода:
GetTime(hour,min,sec,hund); //определяем время начала программы
writeln(hour,':',min,':',sec,':',hund);
t1:=sec*100+min*6000+hund;
…………………………………
{Программа сортировки}
…………………………………
GetTime(hour,min,sec,hund); //время окончания
writeln(hour,':',min,':',sec,':',hund);
t2:=sec*100+min*6000+hund;;
t:=t2-t1; //прошло времени
Методы сортировки Сортировка "пузырьком"
|
Расположим массив сверху вниз, от нулевого элемента - к последнему. Идея метода: шаг сортировки состоит в проходе снизу вверх по массиву. По пути просматриваются пары соседних элементов. Если элементы некоторой пары находятся в неправильном порядке, то меняем их местами.
После нулевого прохода по массиву "вверху" оказывается самый "легкий" элемент - отсюда аналогия с пузырьком. Следующий проход делается до второго сверху элемента, таким образом второй по величине элемент поднимается на правильную позицию... Делаем проходы по все уменьшающейся нижней части массива до тех пор, пока в ней не останется только один элемент. На этом сортировка заканчивается, так как последовательность упорядочена по возрастанию. |
Метод простых вставок
Сортировка простыми вставками в чем-то похожа на вышеизложенные методы. Аналогичным образом делаются проходы по части массива, и аналогичным же образом в его начале "вырастает" отсортированная последовательность... Однако в сортировке пузырьком или выбором можно было четко заявить, что на i-м шаге элементы a[0]...a[i] стоят на правильных местах и никуда более не переместятся. Здесь же подобное утверждение будет более слабым: последовательность a[0]...a[i] упорядочена. При этом по ходу алгоритма в нее будут вставляться (см. название метода) все новые элементы. Будем разбирать алгоритм, рассматривая его действия на i-м шаге. Как говорилось выше, последовательность к этому моменту разделена на две части: готовую a[0]...a[i] и неупорядоченную a[i+1]...a[n]. На следующем, (i+1)-м каждом шаге алгоритма берем a[i+1] и вставляем на нужное место в готовую часть массива. Поиск подходящего места для очередного элемента входной последовательности осуществляется путем последовательных сравнений с элементом, стоящим перед ним. В зависимости от результата сравнения элемент либо остается на текущем месте(вставка завершена), либо они меняются местами и процесс повторяется.
Таким образом, в процессе вставки мы "просеиваем" элемент x к началу массива, останавливаясь в случае, когда
|
