Заказать сложность функции сопряжения - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть код, который включает в себя пару чисел от 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.У меня есть несколько вопросов к этому коду.

  1. Поскольку я новичок в области компьютерных наук, я не думаю, что это очень эффективный код в MATLAB, могу ли я оптимизировать этот код.
  2. Какова сложность порядка этого кода и его оптимизированной версии?
  3. Что если я снова запусту эту функцию на новом наборе A, чтобы получить массив C размера n/4?
...