Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- def skip():
- print ("_" * 60)
- print ("_" * 60)
- def merge_sort(a):
- n = len(a)
- if n < 2:
- return a
- l = merge_sort(a[:n//2])
- r = merge_sort(a[n//2:n])
- i = j = 0
- result = []
- while i < len(l) or j < len(r):
- if not i < len(l):
- result.append(r[j])
- j += 1
- elif not j < len(r):
- result.append(l[i])
- i += 1
- elif l[i] < r[j]:
- result.append(l[i])
- i += 1
- else:
- result.append(r[j])
- j += 1
- return result
- if __name__ == '__main__':
- A = [random.randint(0, 10) for i in range(15)]
- def merge_sort_back(a):
- n = len(a)
- if n < 2:
- return a
- l = merge_sort_back(a[:n//2])
- r = merge_sort_back(a[n//2:n])
- i = j = 0
- result = []
- while i < len(l) or j < len(r):
- if not i < len(l):
- result.append(r[j])
- j += 1
- elif not j < len(r):
- result.append(l[i])
- i += 1
- elif l[i] > r[j]:
- result.append(l[i])
- i += 1
- else:
- result.append(r[j])
- j += 1
- return result
- if __name__ == '__main__':
- A = [random.randint(0, 10) for i in range(15)]
- skip()
- while True:
- choice = input("""\033[52;1;118mВиберіть дію, яку потрібно виконати:
- \033[94m1 – Відсортувати заданий у функції масив\033[0m
- \033[35m2 – Відсортувати масив із прикладу у файлі\033[0m
- \033[33m3 – Ввести масив для сортування самостійно\033[0m
- """)
- if choice == "1" or choice == "Відсортувати заданий у функції масив" or choice == "1 – Відсортувати заданий у функції масив":
- array = A[:]
- break
- elif choice == "2" or choice == "Відсортувати масив із прикладу у файлі" or choice == "2 – Відсортувати масив із прикладу у файлі":
- array = [15, 4, 10, 8, 6, 9, 16, 1, 7 , 3, 11, 14, 2, 5, 12, 13]
- break
- elif choice == "3" or choice == "Ввести масив для сортування самостійно" or choice == "3 – Ввести масив для сортування самостійно":
- while True:
- array_input= input("\033[94mВведіть через пробіл числа масиву, які ви бажаєте відсортувати:\033[0m ")
- array = array_input.split()
- try:
- array = list(map(float, array))
- except:
- print("\033[31mВведений масив складається не тільки з чисел. Спробуйте ввести інший масив!\033[0m")
- continue
- for i in range(len(array)):
- if array[i].is_integer():
- array[i] = int(array[i])
- break
- break
- else:
- print("\033[31mВи ввели неправильне число. Спробуйте ще раз!\033[0m")
- print("\033[36mПочатковий масив:", array, '\033[0m')
- array = merge_sort(array)
- print("\033[38;5;208mМасив після сортування за зростанням:", array, '\033[0m')
- array = merge_sort_back(array)
- print("\033[38;5;219mМасив після сортування за спаданням:", array, '\033[0m')
- skip()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement