| 
					
				 | 
			
			
				@@ -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() 
			 |