Professional Documents
Culture Documents
Novikov Lab10
Novikov Lab10
Перевірив: Викладач
Мухін Віталій Вікторович
Запоріжжя
2022
Хід роботи
Завдання
Використовуючи Selections sort відсортуєте заданий масив 6 1 9 13 5 44 35 8.
Теоретичний матеріал
Сортування вибором — простий алгоритм сортування лінійного масиву,
на основі вставок. Має ефективність n2, що робить його неефективним при
сортування великих масивів, і в цілому, менш ефективним за подібний
алгоритм сортування включенням. Сортування вибором вирізняється більшою
простотою, ніж сортування включенням, і в деяких випадках, вищою
продуктивністю
Алгоритм
Алгоритм працює таким чином:
if i != j:
A[i], A[j] = A[j], A[i]
def bubblesort(A):
"""In-place bubble sort."""
if len(A) == 1:
return
swapped = True
for i in range(len(A) - 1):
if not swapped:
break
swapped = False
for j in range(len(A) - 1 - i):
if A[j] > A[j + 1]:
swap(A, j, j + 1)
swapped = True
yield A
def selectionsort(A):
"""In-place selection sort."""
if len(A) == 1:
return
for i in range(len(A)):
minVal = A[i]
minIdx = i
for j in range(i, len(A)):
if A[j] < minVal:
minVal = A[j]
minIdx = j
yield A
swap(A, i, minIdx)
yield A
if __name__ == "__main__":
N = int(input("Enter number of integers: "))
method_msg = "Enter sorting method:\n(b)ubble\n(s)election\n"
method = input(method_msg)
# Set axis limits. Set y axis upper limit high enough that the tops of
# the bars won't overlap with the text label.
ax.set_xlim(0, N)
ax.set_ylim(0, int(1.07 * N))
iteration = [0]