2014-02-21 6 views
1

Я разработал алгоритм преобразования степеней 10 в двоичный, предполагая, что n является степенью 2. Я использовал метод Гаусса, чтобы использовать быстрое время выполнения этого хорошего метода. Для этого я делю п над 2 и отправить его методу Gauess следующим образом:время работы changetoBinary алгоритма?

changetoBinary(n) 
if n=1 
    return binary of 10 which is 1010 

else 

return gauess(n/2,n/2) 

Очевидно, что метод Guess будет первым разделить, а затем победить и затем объединить. В конце мы изменили номер на двоичный. Теперь я задаюсь вопросом о времени работы алгоритма: я понимаю, что поскольку время выполнения Guess - это Theta (n^log3 (base2)), мы можем сказать, что время работы этого алгоритма также одинаково, поскольку большая часть работы выполнена Guess.On с другой стороны, когда я пытаюсь найти рекуррентное отношение, я прихожу с T (n/2) + O (n), который является Theta (n), поэтому какой из них правильный? Я пропустил sth в своем вычислении, Я получаю противоречие?

ответ

1

Рекуррентное отношение вашего алгоритма не равно T (n) = T (n/2) + n;

сложность вашего алгоритма - O (1). , так что вы правы, что сложность функции gauess будет сложностью вашего алгоритма.

, если ваш алгоритм был бы: change_to_binary (п) { change_to_binary (п/2);} .....

то Т (п) = Т (п/2) было бы вашим рекоммендовать. связь.

+0

Спасибо за ответ, мне интересно, почему время работы только T (n) = T (n/2), потому что в конце он должен добавлять двоичные файлы, например 1010 и 1010, становится (2^2 * 10 + 10) (2^2 * 10 + 10), и мы не должны иметь 2 бинарных сложения, которые принимают n (входной размер этого уровня)? –

+1

T (n) = T (n/2) + c; и c = 1 для алгоритма «change_to_binary». добавление бинарного файла является функцией «gauess», и его сложность уже задана. Во-вторых, каждая функция добавит двоичный номер. и поскольку параметр уменьшается до половины (n/2) оригинала (n), это приведет к размеру ввода «1» бит при последнем вызове функции. – user3324563

+0

Итак, для выяснения моего разума вы имеете в виду, что время работы этого альгината - это Theta (n^log3 (base2))? –

Смежные вопросы