示例#1
0
    def test_contains_element_not_in_list(self):
        values = LinkedList[int]()
        values.head = LinkedList.Node(9, LinkedList.Node(5, LinkedList.Node(1)))

        self.assertFalse(7 in values)
        self.assertFalse(3 in values)
        self.assertFalse(4 in values)
示例#2
0
    def test_clear(self):
        values = LinkedList[int]()
        values.head = LinkedList.Node(9, LinkedList.Node(5, LinkedList.Node(1)))

        values.clear()
        self.assertEqual(values.head, None)
        self.assertEqual(len(values), 0)
示例#3
0
    def test_contains_element_in_list(self):
        values = LinkedList[int]()
        values.head = LinkedList.Node(9, LinkedList.Node(5, LinkedList.Node(1)))

        self.assertTrue(9 in values)
        self.assertTrue(5 in values)
        self.assertTrue(1 in values)
示例#4
0
    def test_index_element_not_in_list(self):
        values = LinkedList[int]()
        values.head = LinkedList.Node(9, LinkedList.Node(5, LinkedList.Node(1)))

        self.assertRaises(ValueError, values.index, 7)
        self.assertRaises(ValueError, values.index, 3)
        self.assertRaises(ValueError, values.index, 4)
示例#5
0
    def test_index_element_in_list(self):
        values = LinkedList[int]()
        values.head = LinkedList.Node(9, LinkedList.Node(5, LinkedList.Node(1)))

        self.assertEqual(values.index(9), 0)
        self.assertEqual(values.index(5), 1)
        self.assertEqual(values.index(1), 2)
示例#6
0
    def test_length_many_elements_list(self):
        values = LinkedList[int]()
        values.head = LinkedList.Node(9, LinkedList.Node(5, LinkedList.Node(1)))

        self.assertEqual(len(values), 3)
示例#7
0
    def test_length_one_element_list(self):
        values = LinkedList[int]()
        values.head = LinkedList.Node(9)

        self.assertEqual(len(values), 1)
示例#8
0
    def test_string_many_elements_list(self):
        values = LinkedList[int]()
        values.head = LinkedList.Node(9, LinkedList.Node(5, LinkedList.Node(1)))

        self.assertEqual(str(values), '[9, 5, 1]')
示例#9
0
    def test_string_one_element_list(self):
        values = LinkedList[int]()
        values.head = LinkedList.Node(9)

        self.assertEqual(str(values), '[9]')
        pass


class BubbleSort(SortingAlgorithm):
    def sort(self, values: List[T]):
        length = len(values)
        for n in range(length):
            for i in range(length - 1):
                if self.gt(values[i], values[i + 1]):
                    self.swap(values, i, i + 1)

import numpy as np
bubble_sort = BubbleSort()
ke = 1000
a = list(np.random.randint(0, 100, 10))
b = LinkedList(*a)
bubble_sort.sort(b)
print(ke ** 2)
print(bubble_sort.comparisons + bubble_sort.swaps)
print(b)
# x = range(100, 2000, 300)
# res = []
# for ke in x:
#     bubble_sort = BubbleSort()
#     a = list(np.random.randint(0, 100, ke))
#     bubble_sort.sort(a)
#     res.append(bubble_sort.comparisons + bubble_sort.swaps)
#
# import seaborn as sns
# import matplotlib.pyplot as plt
# sns.lineplot(x='x', y='y', data={'x': x, 'y':res})
示例#11
0
 def _create_empty_buckets(self, buckets_count: int) -> List[LinkedList]:
     return [LinkedList() for _ in range(buckets_count)]