-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
40 lines (36 loc) · 972 Bytes
/
Copy pathmain.py
File metadata and controls
40 lines (36 loc) · 972 Bytes
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
39
40
def merge_sort(cisla):
dlzka = len(cisla)
if (dlzka == 1):
return
stred = dlzka // 2
lava = cisla[:stred]
prava = cisla[stred:]
merge_sort(lava)
merge_sort(prava)
merge(lava, prava, cisla)
def merge(lava, prava, cisla):
lavaDlzka = len(lava)
pravaDlzka = len(prava)
lavyIndex = 0
pravyIndex = 0
index = 0
while lavyIndex < lavaDlzka and pravyIndex < pravaDlzka:
if lava[lavyIndex] < prava[pravyIndex]:
cisla[index] = lava[lavyIndex]
lavyIndex += 1
index += 1
else:
cisla[index] = prava[pravyIndex]
pravyIndex += 1
index += 1
while lavyIndex < lavaDlzka:
cisla[index] = lava[lavyIndex]
lavyIndex += 1
index += 1
while pravyIndex < pravaDlzka:
cisla[index] = prava[pravyIndex]
pravyIndex += 1
index += 1
cisla = [6, 5, 2, 8, 20, 4]
merge_sort(cisla)
print(cisla)