У меня есть код, который включает в себя пару чисел от 2 до 1.Код для этого
function [ A ] = CantorPairing( B )
[~, b] =(size(B));
%b=sqrt(b);
k=1;
A=zeros(1,b/2);
for i=1:2:(b)
if( B(i)< B(i+1))
A(k)= B(i)+(B(i+1))^2;
else
A(k)= (B(i))^2+B(i)+B(i+1);
end
k=k+1;
end
Это код Matlab, который я реализую.Что делает этот код, так это объединяет смежные элементы массива B
в зависимости от того, какой из них больше.Таким образом, для массива n
число возвращаемых элементов равно n/2
.У меня есть несколько вопросов к этому коду.
- Поскольку я новичок в области компьютерных наук, я не думаю, что это очень эффективный код в MATLAB, могу ли я оптимизировать этот код.
- Какова сложность порядка этого кода и его оптимизированной версии?
- Что если я снова запусту эту функцию на новом наборе
A
, чтобы получить массив C
размера n/4
?