Advertisement
PlotnikovPhilipp

Untitled

Sep 11th, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.43 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. """
  3.  
  4.    Сортировка пузырьком O(n^2)
  5.  
  6. """
  7. """
  8. arr = [] # массив, который надо отсортировать, укажи любые элементы
  9. for i in range(len(arr)):
  10.    for j in range(len(arr) - 1):
  11.        if arr[j] > arr[j + 1]:
  12.            buffer = arr[j]
  13.            arr[j] = arr[j + 1]
  14.            arr[j + 1] = buffer
  15. print(arr)
  16. """
  17.  
  18.  
  19. """
  20.  
  21.    Бинарный поиск log2(n)
  22.  
  23. """
  24. """
  25. arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # массив, по которому будет идти поиск, он должен быть отсортирован
  26. needingElement = 5 # элемент, который мы ищем
  27. firstElement, middleElement, lastElement = 0, 0, len(arr) - 1
  28. flag = False # показатель, справился ли алгоритм с работой или нет
  29. while firstElement <= lastElement:
  30.    middleElement = (firstElement + lastElement) // 2
  31.    if arr[middleElement] == needingElement:
  32.        flag = True
  33.        break
  34.    if arr[middleElement] < needingElement: firstElement = middleElement + 1
  35.    else: lastElement = middleElement - 1
  36. if flag: print('Нашел значение', needingElement, '\nВ списке:', arr, '\nИндекс искомого элемента ', middleElement)
  37. else: print("Что-то пошло не так")
  38. """
  39.  
  40.  
  41. """
  42.  
  43.    Нахождение максимального подмассива O(n)
  44.  
  45. """
  46. """
  47. arr = [1, 2, 3, 4, 5] # массив, в котором мы будем искать максимальный подмассив
  48. currentSum = maxSum = arr[0]
  49. for i in range(1, len(arr)):
  50.    currentSum = max(currentSum, currentSum + arr[i])
  51.    maxSum = max(currentSum, maxSum)
  52. print(maxSum)
  53. """
  54.  
  55.  
  56. """
  57.  
  58.    Решение задачи с ферзем O(1)
  59.    Значения, с помощью которых можно проверить:
  60.    n | result
  61.    ----------
  62.    3   8
  63.    4   44
  64.    5   140
  65.    6   340
  66.  
  67. """
  68. """
  69. n = int(input('Введи максимальное кол-во клеток, которое вмещается вдоль одной стороны: '))
  70. result = (n**4)/2 - (5*n**3)/3 + (3*n**2)/2 - n/3 # тупо формула, которую вывели затроты шахматисты
  71. print(int(result))
  72. """
  73.  
  74.  
  75. """
  76.  
  77.    Быстрая сортировка
  78.  
  79. """
  80. def quickSort(arr):
  81.     if len(arr) < 2: return arr
  82.     else:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement