summaryrefslogtreecommitdiff
path: root/dictionary.py
blob: 32c4e73764ac36f29c85655f0accd725b36a30fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import errors

# Recursive merge sort algorithm
# https://rosettacode.org/wiki/Sorting_algorithms/Merge_sort#Python
def merge(x, y, i):
    if x == []:
        return y
    if y == []:
        return x
    return (
        [x[0]] + merge(x[1:], y, i)
        if x[0][i] < y[0][i]
        else [y[0]] + merge(x, y[1:], i)
    )


def sort(a, n, i):
    m = n // 2
    return (
        a
        if n <= 1
        else merge(sort(a[:m], m, i), sort(a[m:], n - m, i), i)
    )


class dictionary:
    def __init__(self):
        self.data = []
        self.size = 0

    def add(self, key, value):
        if type(value) != int:
            self.data.append([key, value])
            self.size += 1

    # Sort dictionary by value
    def sort_by_value(self):
        self.data = sort_v(self.data, self.size, 1)