Пример #1
0
 def test_single_input(self):
     data = rand_list(count=1)
     data_cp = data[:]
     heap_sort(data)
     self.assertEqual(data, data_cp)
Пример #2
0
def kth(array, k):
    pivot_point = len(array) / 2
    pivot_value = array[pivot_point]
    below = [s for s in array if s < pivot_value]
    above = [s for s in array if s > pivot_value]
    a = len(above)
    b = len(array) - len(below)
    if k < a:
        return kth(above, k)
    elif k > b:
        return kth(below, k - b)
    else:
        return pivot_value


import random
array = [random.randint(-100, 100) for i in range(32)]
print("array", array)

k = 3
kval = kth(array, k)
print("k = ", k, " kval = ", kval)

from heap_sort import *
heap_sort(array)
print("sorted", array)
print(array[len(array) - k - 1])
Пример #3
0
 def test_all_same_input(self):
     single_val = rand_list(count=1)[0]
     data = [single_val]*100
     heap_sort(data)
     for i in range(0, 100):
         self.assertEqual(single_val, data[i])
Пример #4
0
 def test_zero_input(self):
     data = []
     heap_sort(data)
     self.assertEqual(data, [])
Пример #5
0
 def test_all_zero_input(self):
     data = [0]*100
     heap_sort(data)
     for i in range(0, 100):
         self.assertEqual(data[i], 0)
Пример #6
0
 def test_array_input(self):
     data = rand_list()
     heap_sort(data)
     for i in range(1, len(data)):
         self.assertLessEqual(data[i-1], data[i])
Пример #7
0
 def test_double_input(self):
     data = rand_list(count=2)
     heap_sort(data)
     self.assertLessEqual(data[0], data[1])
Пример #8
0
 def test_heap_sort(self):
     heap = heap_sort(self.ex)
     self.assertEqual(heap, [1, 2, 3, 4, 7, 8, 9, 10, 14, 16])
Пример #9
0
def visual_test(heap):    
    print(heap)
    print('Sorted:')
    print(heap_sort(heap))
    print()