Advertisement
Lavig

Практична робота №12

Mar 24th, 2023
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.97 KB | None | 0 0
  1. def skip():
  2.     print ("_" * 60)
  3.     print ("_" * 60)
  4. skip()
  5. # Перше завдання
  6. mas = [100, 20, 41, 30, 35]
  7. print("Початковий масив:", mas)
  8. n = len(mas)
  9. operations = 0
  10. mas_changes = [mas.copy()]
  11. is_sorted = all(mas[i] <= mas[i+1] for i in range(n-1))
  12. if is_sorted == False:
  13.     p = n-1
  14.     while p > 0:
  15.         y = False
  16.         for i in range(p):
  17.             operations += 1
  18.             if mas[i] > mas[i+1]:
  19.                 mas[i], mas[i+1] = mas[i+1], mas[i]
  20.                 y = True
  21.             mas_changes.append(mas.copy())
  22.         if not y:
  23.             break
  24.         is_sorted = all(mas[i] <= mas[i+1] for i in range(p))
  25.         if is_sorted:
  26.             break
  27.         p = p - 1
  28. print("Масив після сортування:", mas)
  29. max_operations = 0
  30. for i in range(n-1, 0, -1):
  31.     max_operations += i
  32. print("Максимальна кількість операцій порівняння для сортування масиву з", n, "елементів дорівнює", max_operations)
  33. print("Кількість операцій порівняння, яких достатньо для сортування даного масиву дорівнює", operations)
  34. while True:
  35.     choice = input("""Чи вивести покрокові змінення масиву?
  36. 1 – так
  37. 2 – ні
  38. """)
  39.     if choice == "1" or choice == "так" or choice == "1 – так":
  40.         for i in mas_changes:
  41.            print(i)
  42.         break
  43.     elif choice == "2" or choice == "ні" or choice == "2 – ні":
  44.         break
  45.     else:
  46.         print("Ви неправильно вибрали цифру. Спробуйте ще раз!")
  47. skip()
  48. # Друге завдання
  49. array = [34, 12, 8, 5, 20, 17]
  50. print("Початковий масив:", array)
  51. n = len(array)
  52. is_sorted = all(array[i] <= array[i+1] for i in range(n-1))
  53. if is_sorted == False:
  54.     p = n - 1
  55.     while p > 0:
  56.         y = False
  57.         for i in range(p):
  58.             if array[i] < array[i+1]:
  59.                 array[i], array[i+1] = array[i+1], array[i]
  60.                 y = True
  61.         if not y:
  62.             break
  63.         is_sorted = all(array[i] <= array[i+1] for i in range(p))
  64.         p = p - 1
  65. print("Масив після сортування:", array)
  66. skip()
  67. # Третє завдання
  68. import random
  69. numbers = []
  70. for i in range(10):
  71.     numbers.append(random.randint(1, 8))
  72. print("Початковий масив:", numbers)
  73. n = len(numbers)
  74. is_sorted = all(numbers[i] <= numbers[i+1] for i in range(n-1))
  75. if is_sorted == False:
  76.     p = n - 1
  77.     while p > 0:
  78.         y = False
  79.         for i in range(p):
  80.             if numbers[i] > numbers[i+1]:
  81.                 numbers[i], numbers[i+1] = numbers[i+1], numbers[i]
  82.                 y = True
  83.         if not y:
  84.             break
  85.         is_sorted = all(numbers[i] <= numbers[i+1] for i in range(p))
  86.         p = p - 1
  87. print("Масив після сортування:", numbers)
  88. skip()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement