Guest User

Untitled

a guest
Mar 25th, 2026
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.19 KB | None | 0 0
  1.  
  2. #1T(n-1)+O(1)
  3. def soma(n):
  4.     if n == 0:
  5.         return -1
  6.     for _ in range(n):
  7.         x = 1
  8.     s = soma(n-1)+n
  9.    
  10.     return s
  11. #1T(n-3)+O(n)
  12. def soma(n):
  13.     if n == 0:
  14.         return -1
  15.     for _ in range(n):
  16.         x = 1
  17.     s = soma(n-3)+n
  18.    
  19.     return s
  20. #2T(n-3)+O(n)
  21. def soma(n):
  22.     if n == 0:
  23.         return -1
  24.     for _ in range(n):
  25.         x = 1
  26.     s = soma(n-3)+soma(n-3)+n
  27.    
  28.     return s
  29. #2T(n/2)+O(n)
  30. def soma(n):
  31.     if n == 0:
  32.         return -1
  33.     for _ in range(n):
  34.         x = 1
  35.     s = soma(n/2)+soma(n/2)+n
  36.    
  37.     return s
  38.  
  39. #apresentar os valores de uma lista de forma recursiva
  40. def apresentar(v,i):
  41.     if i < len(v):
  42.         print(v[i])
  43.         apresentar(v,i+1)
  44.    
  45. v = list(range(10))
  46. print(apresentar(v,0))
  47. #soma os valores de um vetor de forma recursiva
  48. def somar(v,i):
  49.     if i >= len(v):
  50.         return 0
  51.     return somar(v,i+1)+v[i]
  52.    
  53. v = list(range(10))
  54. print(somar(v,0))
  55.  
  56. #busca pulando
  57. def busca(v,p):
  58.     i = 0
  59.     contador = 0
  60.     while (i < len(v) and v[i] < p):
  61.         i += 10
  62.         contador += 1
  63.  
  64.     if i == len(v):
  65.         return -1
  66.  
  67.     for i in range(i-10,i):
  68.         contador += 1
  69.         if v[i] == p:
  70.             return i,contador
  71.  
  72. print(busca(list(range(1000)),739))
  73.  
  74. #busca iterativa
  75. def busca_binaria(v,p):
  76.     inicio = 0
  77.     fim = len(v)-1
  78.     contador = 0
  79.    
  80.     while (inicio <= fim):
  81.         meio = (inicio+fim)//2
  82.         contador += 1
  83.         if v[meio] == p:
  84.             print(contador)
  85.             return meio
  86.         elif p > v[meio]:
  87.             inicio = meio+1
  88.         else:
  89.             fim = meio - 1
  90.     print(contador)
  91.     return -1
  92.  
  93. #701 - 1500
  94. #500 - 700
  95. #200 - 499
  96. #100 - 199
  97. #40 - 99
  98. #10 - 39
  99. #< 10  
  100.  
  101.  
  102. print(busca_binaria(list(range(1000000)),867543))
  103.  
  104.  
  105. #busca binaria recursiva
  106. def busca_binaria(v,p,i,f):
  107.  
  108.     if i > f:
  109.         return -1
  110.     if v[i] == p:
  111.         return i
  112.     if v[i] < p:
  113.         busca_binaria(v,p,m+1,f)
  114.     else:
  115.         busca_binaria(v,p,i,m-1)
  116. 1T(n/2) + O(1) = O(log n)
  117. #701 - 1500
  118. #500 - 700
  119. #200 - 499
  120. #100 - 199
  121. #40 - 99
  122. #10 - 39
  123. #< 10  
  124.  
  125.  
  126. print(busca_binaria(list(range(1000000)),867543))
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
Advertisement
Add Comment
Please, Sign In to add comment