| 
					
				 | 
			
			
				@@ -138,5 +138,20 @@ $$T(x) = T(x/2) + 1 = (pela HI) = lg \space x + 1 $$ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Que é o que queríamos provar. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-###### 4. Para esta questão, vamos dizer que a mediana de um vetor A[p..r] com número inteiros é o valor que ficaria na posição A[b(p + r)/2c] depois que o vetor A[p..r] fosse ordenado. Dado um algoritmo linear “caixa-preta” que devolve a mediana de um vetor, descreva um algoritmo simples, linear, que, dado um vetor A[p..r] de inteiros distintos e um inteiro k, devolve o k-ésimo mínimo do vetor. (O k-ésimo mínimo de um vetor de inteiros  distintos é o elemento que estaria na k-ésima posição do vetor se ele fosse ordenado.) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+###### 4. Para esta questão, vamos dizer que a mediana de um vetor A[p..r] com número inteiros é o valor que ficaria na posição A[b(p + r)/2c] depois que o vetor A[p..r] fosse ordenado. Dado um algoritmo linear “caixa-preta” que devolve a mediana de um vetor, descreva um algoritmo simples, linear, que, dado um vetor A[p..r] de inteiros distintos e um inteiro k, devolve o k-ésimo mínimo do vetor. (O k-ésimo mínimo de um vetor de inteiros  distintos é o elemento que estaria na k-ésima posição do vetor se ele fosse ordenado). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Kesimo(A, p, r, k) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    m <- mediana(A, p, r) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    part <- particiona_com_elemento(A, p, r, m) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    se p > k 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        retorna Kesimo(A, p, part, k) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    senao se p < k 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        retorna Kesimo(A, part, r, k) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    retorna A[part] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Note, o particiona é $O(n)$, assim como a mediana. Portanto o tempo de consumo desse algorítmo será $T(n) = T(n/2) + O(n)$. Vamos provar que é $O(n)$. Note que $T(1) = 1$ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+BASE: $T(1) = 1 \leq c * 1 $ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |