|
@@ -173,6 +173,7 @@ def sort_2():
|
|
|
|
|
|
# sort_2()
|
|
|
|
|
|
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
def sort_3():
|
|
|
drivers = {}
|
|
@@ -199,3 +200,78 @@ def sort_3():
|
|
|
print(i[0], i[1])
|
|
|
|
|
|
# sort_3()
|
|
|
+
|
|
|
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
+
|
|
|
+# Сортировка пузырьком
|
|
|
+def sort_bubble():
|
|
|
+ a = [1, 7, -3, 9, 0, -67, 34, 12, 45, 1000, 6, 8, -2, 99]
|
|
|
+ n = len(a)
|
|
|
+ flag = True
|
|
|
+
|
|
|
+ for i in range(n - 1):
|
|
|
+ flag = True
|
|
|
+ for j in range(n - i - 1):
|
|
|
+ if a[j] > a[j + 1]: # если порядок элементов пары неправильный
|
|
|
+ a[j], a[j + 1] = a[j + 1], a[j] # меняем элементы пары местами
|
|
|
+ flag = False
|
|
|
+ if flag == True:
|
|
|
+ break
|
|
|
+
|
|
|
+ print('Отсортированный список:', a)
|
|
|
+
|
|
|
+# sort_bubble()
|
|
|
+
|
|
|
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
+
|
|
|
+# Сортировка выбором
|
|
|
+def sort_selection():
|
|
|
+ a = [78, -32, 5, 39, 58, -5, -63, 57, 72, 9, 53, -1, 63, -97,
|
|
|
+ -21, -94, -47, 57, -8, 60, -23, -72, -22, -79, 90, 96, -41,
|
|
|
+ -71, -48, 84, 89, -96, 41, -16, 94, -60, -64, -39, 60, -14,
|
|
|
+ -62, -19, -3, 32, 98, 14, 43, 3, -56, 71, -71, -67, 80, 27,
|
|
|
+ 92, 92, -64, 0, -77, 2, -26, 41, 3, -31, 48, 39, 20, -30,
|
|
|
+ 35, 32, -58, 2, 63, 64, 66, 62, 82, -62, 9, -52, 35, -61,
|
|
|
+ 87, 78, 93, -42, 87, -72, -10, -36, 61, -16, 59, 59, 22,
|
|
|
+ -24, -67, 76, -94, 59]
|
|
|
+
|
|
|
+ n = len(a)
|
|
|
+
|
|
|
+ new_a = []
|
|
|
+
|
|
|
+ for i in range(len(a)):
|
|
|
+ el = min(a)
|
|
|
+ index = a.index(el)
|
|
|
+ a.pop(index)
|
|
|
+ new_a.append(el)
|
|
|
+
|
|
|
+ print(new_a)
|
|
|
+
|
|
|
+# sort_selection()
|
|
|
+
|
|
|
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
+
|
|
|
+# Сортировка простыми вставками
|
|
|
+def sort_simple_insertion():
|
|
|
+ a = [1, 7, -3, 9, 0, -67, 34, 12, 45, 1000, 6, 8, -2, 99]
|
|
|
+ n = len(a)
|
|
|
+
|
|
|
+ for i in range(1, n):
|
|
|
+ elem = a[i] # берем первый элемент из неотсортированной части списка
|
|
|
+ j = i
|
|
|
+
|
|
|
+ # пока элемент слева существует и больше нашего текущего элемента
|
|
|
+ while j >= 1 and a[j - 1] > elem:
|
|
|
+ # смещаем j-й элемент отсортированной части вправо
|
|
|
+ a[j] = a[j - 1]
|
|
|
+ # сами идём влево, дальше ищем место для нашего текущего элемента
|
|
|
+ j -= 1
|
|
|
+
|
|
|
+ # нашли место для нащего текущего элемента из неотсортированной части
|
|
|
+ # и вставляем его на индекс j в отсортированной части
|
|
|
+ a[j] = elem
|
|
|
+
|
|
|
+
|
|
|
+ print('Отсортированный список:', a)
|
|
|
+
|
|
|
+sort_simple_insertion()
|