Заглядывание в "куче" в Python

Clojure

Хвост-рекурсивный

(defn fact 
  ([n] (fact n 1))
  ([n acc] (if (= n 0) 
               acc 
               (recur (- n 1) (* acc n)))))

Короткий и простой

 (defn fact [n] (apply * (range 1 (+ n 1))))
29
задан Joe 17 November 2009 в 21:18
поделиться

1 ответ

Да, вы можете сделать это предположение, потому что оно указано в документация : куча [2 * k + 2] для всех k , считая элементы с нуля. Ради сравнение, несуществующие элементы считается бесконечным. интересным свойством кучи является то, что куча [0] всегда самая маленькая элемент.

(И это, вероятно, причина того, что нет функции peek : в ней нет необходимости.)

41
ответ дан 28 November 2019 в 01:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: