2013-01-10 63 views
2

我想实现一个堆定义优先级队列,该算法是从CLRS书第六章 的伪代码列出如下:如何在python中实现负向无穷大?

Max_Heap_Insert(A, key): 
    A.heap_size = A.heap_size + 1 
    A[A.heap_size] = -∞ 
    Heap_Increase_Key(A, A.heap_size, key) 

我的问题是,使用python,我该如何界定-∞?

回答

3

碰巧,在Python 2中,None小于任何整数,因此您可以使用None。在Python 3,你有(至少)四个选择:

  1. 使用分钟(A) - 1.
  2. 使用None,每当你比较两个值,明确地测试他们为None
  3. 定义由整数或-∞组成的新数据类型,并正确处理比较。
  4. 修改算法,以消除第2行。不知怎的,你将不得不修补Heap-Increase-Key
6

Python有特殊值float('inf')float('-inf')