Учебно-методическое пособие. Алматы, 2017 ббк



бет89/106
Дата03.01.2022
өлшемі483.39 Kb.
#451845
түріУчебно-методическое пособие
1   ...   85   86   87   88   89   90   91   92   ...   106
УЧЕБНИКПаскаль(100217)

3.1.3. Сортировка подсчетом

Выше мы рассмотрели основные виды сортировок, они отличаются по скорости выполнения, более того, скорость сортировки зависит и от степени упорядоченности исходного массива. Однако, для них характерно общая особенность, время сортировки быстро возрастает с количеством элементов (время работы любого из универсальных “эффективных”,(то есть выполняющих порядка Nlog2N действий).

Интерестно, сущестует ли метод сортировки такой, в котором количество действий равно количеству самих элементов. Оказывается, такой метод существует. Пусть, требуется отсортировать 1000000 чисел, вводимых, например, из стандартного потока ввода (это типичная задача для районных или городских олимпиад по информатике). Так вот, если эти числа являются целыми и известен диапазон значений в котром они лежат то, в этом случае алгоритм сортировки фактически заключается в подсчете количества каждого из числа и записи результата согласно полученным результатам подсчета. Реализовать этот алгоритм можно так:
Procedure Karman;

Const


N1=Nmin; {нижнее возможное значение числа}

N2=Nmax; {верхнее возможное значение числа}

Var

d:array[N1..N2] of longint; {массив для подсчета}



a:integer;{переменная для ввода цифр}

n,i,j:longint;

begin

read(n);{n - количество цифр}



for i := 1 to n do

begin


read(a);

inc(d[a]);

end;

for j := N2 to N1 do {печатаем результат}



for i := 1 to d[j] do

writeln(j);

end;
Эту «сортировку» называют еще «карманной сортировкой». Ее можно применять в случае, если тип переменных подлежащих сортировки является перечисляемым и есть ограничение на их значения.
Задание

1. Написать программу которая определяет какой символ чаще всего встречается в тексте






Достарыңызбен бөлісу:
1   ...   85   86   87   88   89   90   91   92   ...   106




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет