コード例 #1
0
ファイル: ordenacao.py プロジェクト: sexytesla/py-pcs3110
def heapsort(lista):
    """ Retorna a lista ordenada usando o algoritmo HeapSort.
    """
    h = MaxHeap(lista)
    for i in range(len(lista) - 1, 0, -1):
        temp = lista[0]
        lista[0] = lista[i]
        lista[i] = temp
        h.heap_size -= 1
        h.max_heapify(0)
    return lista
コード例 #2
0
ファイル: test_heap.py プロジェクト: sexytesla/py-pcs3110
    def test_is_max_heap_não_é(self):
        h1 = MaxHeap()
        h1.lista = [1, 2, 3, 4, 5, 6, 7, 8, 9]
        h1.heap_size = len(h1.lista)
        self.assertFalse(h1.is_max_heap())

        h1.lista = [9, 8, 3, 7, 4, 1, 5, 2, 6]
        h1.heap_size = len(h1.lista)
        self.assertFalse(h1.is_max_heap())
コード例 #3
0
ファイル: test_heap.py プロジェクト: sexytesla/py-pcs3110
    def test_extrair_maior(self):
        h1 = MaxHeap([5, 2, 3, 7, 9, 4, 8, 1, 6])

        self.assertEqual(h1.extrair_maior(), 9)
        self.assertEqual(h1.extrair_maior(), 8)
        self.assertEqual(h1.extrair_maior(), 7)
        self.assertEqual(h1.extrair_maior(), 6)
        self.assertEqual(h1.extrair_maior(), 5)
        self.assertEqual(h1.extrair_maior(), 4)
        self.assertEqual(h1.extrair_maior(), 3)
        self.assertEqual(h1.extrair_maior(), 2)
        self.assertEqual(h1.extrair_maior(), 1)
        self.assertRaises(ValueError, h1.extrair_maior)
コード例 #4
0
ファイル: test_heap.py プロジェクト: sexytesla/py-pcs3110
 def test_inserir_já_em_max_heap(self):
     h = MaxHeap()
     h.inserir(9)
     self.assertTrue(h.is_max_heap())
     h.inserir(8)
     self.assertTrue(h.is_max_heap())
     h.inserir(3)
     self.assertTrue(h.is_max_heap())
     h.inserir(7)
     self.assertTrue(h.is_max_heap())
     h.inserir(4)
     self.assertTrue(h.is_max_heap())
     h.inserir(1)
     self.assertTrue(h.is_max_heap())
     h.inserir(2)
     self.assertTrue(h.is_max_heap())
     h.inserir(5)
     self.assertTrue(h.is_max_heap())
     h.inserir(6)
     self.assertTrue(h.is_max_heap())
コード例 #5
0
ファイル: test_heap.py プロジェクト: sexytesla/py-pcs3110
 def test_is_max_heap_ordenado(self):
     h1 = MaxHeap()
     h1.lista = [9, 8, 7, 6, 5, 4, 3, 2, 1]
     h1.heap_size = len(h1.lista)
     self.assertTrue(h1.is_max_heap())
コード例 #6
0
ファイル: test_heap.py プロジェクト: sexytesla/py-pcs3110
 def test_extrair_maior_underflow(self):
     h = MaxHeap()
     self.assertRaises(ValueError, h.extrair_maior)
コード例 #7
0
ファイル: test_heap.py プロジェクト: sexytesla/py-pcs3110
 def test_build_já_é_heap(self):
     h1 = MaxHeap([9, 8, 3, 7, 4, 1, 2, 5, 6])
     self.assertTrue(h1.is_max_heap())
コード例 #8
0
ファイル: test_heap.py プロジェクト: sexytesla/py-pcs3110
 def test_build_decrescente(self):
     h1 = MaxHeap([9, 8, 7, 6, 5, 4, 3, 2, 1])
     self.assertTrue(h1.is_max_heap())
コード例 #9
0
ファイル: test_heap.py プロジェクト: sexytesla/py-pcs3110
 def test_build_aleatorio(self):
     h1 = MaxHeap([5, 2, 3, 7, 9, 4, 8, 1, 6])
     self.assertTrue(h1.is_max_heap())
コード例 #10
0
ファイル: test_heap.py プロジェクト: sexytesla/py-pcs3110
 def test_build_crescente(self):
     h1 = MaxHeap([1, 2, 3, 4, 5, 6, 7, 8, 9])
     self.assertTrue(h1.is_max_heap())
コード例 #11
0
ファイル: test_heap.py プロジェクト: sexytesla/py-pcs3110
 def test_is_max_heap_iguais(self):
     h1 = MaxHeap()
     h1.lista = [9, 9, 9, 9, 9, 1, 2, 5, 6]
     h1.heap_size = len(h1.lista)
     self.assertTrue(h1.is_max_heap())
コード例 #12
0
ファイル: test_heap.py プロジェクト: sexytesla/py-pcs3110
 def test_is_max_heap_nao_ordenado(self):
     h1 = MaxHeap()
     h1.lista = [9, 8, 3, 7, 4, 1, 2, 5, 6]
     h1.heap_size = len(h1.lista)
     self.assertTrue(h1.is_max_heap())