Projeto e Análise de Algoritmos Lista 2

https://imgur.com/sOvjW98.png

1  |PROCEDIMENTO BuscaLinear(A[], X : Inteiro):
2  |VAR
3  |  |i : Inteiro
4  |INICIO
5  |  |PARA i <- 1 ATÉ Comprimento(A) - 1, FAÇA:
6  |  |  |SE X = A[i], ENTÃO:
7  |  |  |  |Retorne i
8  |  |  |FIM-SE
9  |  |FIM-PARA
10 |FIM

https://imgur.com/MCSIFd2.png

https://imgur.com/cmNipX4.png https://imgur.com/eaoJTSY.png

É necessário provar a manutenção a fim de verificar se a propriedade invariante é verdadeira durante a execução do laço.

https://imgur.com/AOGnpEf.png

https://imgur.com/JYyuvFq.png

1  |PROCEDIMENTO BubbleSort(A[] : Inteiro):
2  |VAR
3  |  |i, j, t : Inteiro
4  |INICIO
5  |  |PARA i <- Comprimento(A) ATÉ 1, FAÇA:
6  |  |  |PARA j <- 2, ATÉ i, FAÇA:
7  |  |  |  |SE A[j - 1] > A[j], ENTÃO:
8  |  |  |  |  |t <- A[j - 1]
9  |  |  |  |  |A[j - 1] <- A[j]
10 |  |  |  |  |A[j] <- t
11 |  |  |  |FIM-SE
12 |  |  |FIM-PARA
13 |  |FIM-PARA
14 |FIM

A i-ésima iteração do laço para das linhas 5 até 13 resultará em n-i iterações no laço das linhas 6 até 12, onde a troca será feita em tempo constante de execução. Assim, o pior caso do bubble sort é \(\Theta(n^{2})\) que é o mesmo que o pior caso de execução do insertion sort.