Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def skip():
- print ("_" * 60)
- print ("_" * 60)
- skip()
- while True:
- choice = input("""\033[32mВиберіть дію, яку потрібно виконати:
- \033[95m1 – Використати масив з прикладу у файлі
- \033[33m2 – Ввести масив самостійно\033[0m
- """)
- if choice == "1" or choice == "Використати масив з прикладу у файлі" or choice == "1 – Використати масив з прикладу у файлі":
- array = [15, 4, 10, 8, 6, 9, 16, 1, 7, 3, 11, 14, 2, 5, 12, 13]
- break
- elif choice == "2" or choice == "Ввести масив самостійно" or choice == "2 – Ввести масив самостійно":
- 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")
- continue
- print("\033[33mПочатковий масив:", array, '\033[0m')
- array2 = array[:]
- n = len(array)
- operations = 0
- array_changes = [array.copy()]
- for j in range(1, n):
- key = array[j]
- i = j - 1
- while i >= 0 and array[i] > key:
- array[i+1] = array[i]
- i -= 1
- operations += 1
- array_changes.append(array.copy())
- array[i+1] = key
- operations += 1
- array_changes.append(array.copy())
- p = len(array) - 1
- print("\033[38;5;219mМасив після сортування за зростанням:", array, '\033[0m')
- print("\033[38;5;130mКількість дій, які потрібні для сортування даного масиву за зростанням, дорівнює", operations, '\033[0m')
- while True:
- choice = input("""\033[38;5;178mЧи вивести покрокові змінення масиву?
- \033[38;5;37m1 – так
- \033[38;5;58m2 – ні\033[0m
- """)
- if choice == "1" or choice == "так" or choice == "1 – так":
- for i, change in enumerate(array_changes):
- if i % 2 == 0:
- print("\033[0;95m" + str(change) + "\033[0m")
- else:
- print("\033[0;33m" + str(change) + "\033[0m")
- break
- elif choice == "2" or choice == "ні" or choice == "2 – ні":
- break
- else:
- print("\033[31mВи неправильно вибрали цифру. Спробуйте ще раз!\033[0m")
- n = len(array2)
- operations = 0
- array_changes = [array2.copy()]
- for j in range(1, n):
- key = array2[j]
- i = j - 1
- while i >= 0 and array2[i] < key:
- array2[i+1] = array2[i]
- i -= 1
- operations += 1
- array_changes.append(array2.copy())
- array2[i+1] = key
- operations += 1
- array_changes.append(array2.copy())
- p = len(array2) - 1
- print("\033[38;5;67mМасив після сортування за спаданням:", array2, '\033[0m')
- print("\033[38;5;208mКількість дій, які потрібні для сортування даного масиву за спаданням, дорівнює", operations, '\033[0m')
- while True:
- choice = input("""\033[38;5;118mЧи вивести покрокові змінення масиву?
- \033[38;5;145m1 – так
- \033[38;5;124m2 – ні\033[0m
- """)
- if choice == "1" or choice == "так" or choice == "1 – так":
- for i, change in enumerate(array_changes):
- if i % 2 == 0:
- print("\033[38;5;219m" + str(change) + "\033[0m")
- else:
- print("\033[0;91m" + str(change) + "\033[0m")
- break
- elif choice == "2" or choice == "ні" or choice == "2 – ні":
- break
- else:
- print("\033[31mВи неправильно вибрали цифру. Спробуйте ще раз!\033[0m")
- skip()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement