Você está na página 1de 3

LISTA DE EXERCÍCIOS

ESTRUTURA DE DADOS
RESPOSTAS
1) https://www.ritambhara.in/optimized-bubble-sort-algorithm/
2) Busca sequencial = irá percorrer todo o vetor comparando a chave com
o valor de cada posição
Busca binária = funciona dividindo o vetor pela metade várias vezes até
encontrar o número desejado
De modo geral a busca binária é mais sofisticada, sendo muito mais efetivo
em vetores com maior quantidade de índices.
3) A escolha do pivô é responsável por influenciar decisivamente no tempo
de execução do QuickSort, melhorando o seu desempenho. Estratégias que
podem ser utilizadas para um melhor desempenho seria a escolha do pivô ser
pelo último elemento, levando um vetor de entrada ordenado a Θ(n2), assim
como escolher o elemento do meio como pivô quando o vetor está ordenado ou
quase, melhorando bastante seu desempenho.
4)

lista = [1,2,3]

def isAscending(lista):

previous = lista[0]

for number in lista:

if number < previous:

return False

previous = number

return print("ORDENADO")

isAscending(lista)

Complexidade O(n²)

5)
int
buscaBinaria (int x, int n, int v[]) {
int e = -1, d = n; // atenção!
while (e < d-1) {
int m = (e + d)/2;
if (v[m] < x) e = m;
else d = m;
}
return d;
}

O melhor caso da busca binária ocorre quando o elemento que procuramos


está no meio do vetor. Dessa forma, haverá apenar uma chamada
recursiva/iteração. Portanto, o algoritmo tem complexidade constante: Θ(1) ou
O(1). O pior caso ocorre quando o elemento que buscamos não está no vetor.
6) int pot (int b,
int p)
{
If (p==0) return 1;
Return (b*pot (b*pot(b,p-1));
}

7)
Void inverte (int v[], int esq, int dit)
{
Int t;
If (esq >= dir)return;
t= v[esq]; v[esq] =
v[dir]; v[dir] = t;

inverte (v, esq+1, dir - 1);


}

8)
Int conta_dig(int N, int K)
{
If (N == 0) return 0;
Return conta_dig( N/ 10, K)+ (N % 10 == K);
}

Você também pode gostar