Amazing-Python-Scripts

Форк
0
58 строк · 1.2 Кб
1
# -*- coding: utf-8 -*-
2
"""
3
Author: Himanshu Agarwal
4
Github: himanshu-03 (http://github.com/himanshu-03)
5
LinkedIn: agarwal-himanshu (https://linkedin.com/in/agarwal-himanshu)
6

7
# Merge Sort
8
"""
9

10

11
def merger(a, start, mid, end):
12
    temp = []
13
    for i in range(len(a)):
14
        temp.append(0)
15
    i = start
16
    j = mid + 1
17
    ti = start
18
    while i <= mid and j <= end:
19
        if a[i] < a[j]:
20
            temp[ti] = a[i]
21
            ti += 1
22
            i += 1
23
        else:
24
            temp[ti] = a[j]
25
            ti += 1
26
            j += 1
27
    while i <= mid:
28
        temp[ti] = a[i]
29
        ti += 1
30
        i += 1
31
    while j <= end:
32
        temp[ti] = a[j]
33
        ti += 1
34
        j += 1
35

36
    for i in range(start, end+1):
37
        a[i] = temp[i]
38

39

40
def mergesort(a, start, end):
41
    if start < end:
42
        mid = (start+end)//2
43
        mergesort(a, start, mid)
44
        mergesort(a, mid+1, end)
45
        merger(a, start, mid, end)
46

47

48
a = []
49
size = int(input('Enter size of array: '))
50
print('')
51
for i in range(size):
52
    data = int(input('Enter element: '))
53
    a.append(data)
54
print('')
55
print('Elements are: ', a)
56

57
mergesort(a, 0, len(a)-1)
58
print('After sorting elements are: ', a)
59

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.