Сортировка слиянием Отсортируйте данный массив, используя сортировку слиянием. Попробуйте написать свою реализацию, например, не создавая новые списки при каждом рекурсивном вызове.
Входные данные
Первая строка входных данных содержит количество элементов в массиве N,N≤105. Далее идут N целых чисел, не превосходящих по абсолютной величине 109.
Выходные данные
Выведите эти числа в порядке неубывания.
Примеры
Ввод
Вывод
2
3 1
1 3
f: file of integer;
i, n, x, t, k, max: integer;
s: integer;
begin
randomize;
write('n=');
readln(n);
assign(f, 'numbers.dat');
rewrite(f);
max := -1;
for i := 1 to n do
begin
x := random(4800) + 20;
write(f, x);
write(x, ' ');
if x > max then max := x;
end;
writeln;
seek(f, 0);
k := 0;
while not eof(f) do
begin
read(f, x);
t := x;
s := 0;
while t > 0 do
begin
s := s + sqr(t mod 10);
t := t div 10;
end;
if x mod s = 0 then k := k + 1;
if x > max - 50 then write(x, ' ');
end;
writeln;
writeln(k);
end.
ответ:
один бит позволяет закодировать 2 значения (0 или 1).
используя два бита, можно закодировать 4 значения: 00, 01, 10, 11.
тремя битами кодируются 8 разных значений: 000, 001, 010, 011, 100, 101, 110,
111.
короче говоря:
1 бит кодирует –> 2 разных значения (21 = 2),
2 бита кодируют –> 4 разных значения (22 = 4),
3 бита кодируют –> 8 разных значений (23 = 8),
4 бита кодируют –> 16 разных значений (24 = 16),
5 бит кодируют –> 32 разных значения (25 = 32),
6 бит кодируют –> 64 разных значения (26 = 64),
7 бит кодируют –> 128 разных значения (27 = 128),
8 бит кодируют –> 256 разных значений (28 = 256),
9 бит кодируют –> 512 разных значений (29 = 512),
10 бит кодируют –> 1024 разных значений (210 = 1024).