estrutura de dados i aula i · 2019-02-14 · uma estrutura de dados é um modo de armazenar os...
TRANSCRIPT
![Page 1: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/1.jpg)
ESTRUTURA DE DADOS IAULA IPROF. ME. HÉLIO ESPERIDIÃO
![Page 2: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/2.jpg)
O que é um dado?Dado pode ser definido como a matéria-prima originalmente obtida de uma ou mais fontes (etapa de coleta).
![Page 3: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/3.jpg)
o que é a informaçãoA Informação é o resultado do processamento.
Isto é, o dado processado ou "acabado”.
![Page 4: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/4.jpg)
Obtendo a informação
Dados Processamento Informação
![Page 5: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/5.jpg)
Exemplo de Processamento
14/02/2019 5
Área S do
circuloBase,Altura
2
.abs =
Modelo
Matemático
Implementação (Padrão de bits/rotinas)
![Page 6: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/6.jpg)
Processamento de Dados:O esquema.
ProcessamentoEntrada Saída
Dispositivode Entrada
Dispositivode Saída
Memória
CPU
![Page 7: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/7.jpg)
Definindo Abstração
14/02/2019 7
![Page 8: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/8.jpg)
AbstraçãoQuando a matéria-prima usada num processo é abstrata, isto é, apresenta-se sob a forma de valores, quantidades ou símbolos, então falamos em processamento de dados. Quando o processamento é realizado por um computador, entrada refere-se aos dados colhidos do mundo real externo ao computador, e processo refere-se a uma série finita de operações que são realizadas a partir destes dados, a fim de transformá-los em alguma informação desejada (saída).
![Page 9: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/9.jpg)
ImportanteNem todo tipo de dado abstrato pode ser implementado em toda sua generalidade.
Observe o conjunto Z
Z = {...,-3,-2,-1,0,1,2,3,...}
O conjunto Z deve ser finito.
14/02/2019 9
![Page 10: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/10.jpg)
Conceito de Estrutura de DadosUma estrutura de dados é um modo de armazenar os dados no computador para que os dadossejam usados com eficiência.
Normalmente devem ser escolhidas cuidadosamente; Uma estrutura de dados bemdesenvolvida permite que uma variedade de operações críticas sejam implementadas por umalinguagem de programação com os tipos de dados e referências e as operações advindas dosmesmos.
![Page 11: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/11.jpg)
Objetivo da Estrutura de
Dados
Teórico: Identificar e desenvolver modelos matemáticos, determinando que classes de problemas podem ser resolvidos como uso deles;
Prático: Criar representações concretas dos objetos e desenvolver rotinas capazes de atuar sobre estas representações, de acordo com modelo considerado.
![Page 12: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/12.jpg)
REPRESENTAÇÃO DE DADOS
✓ O matemático inglês George Boole (1815-1864) publicou em 1854 os princípios da lógica booleana.
✓ Segundo Boole tudo poderia ser representado utilizando apenas os números 0 e 1.
010000111010101011110110101010110101010110101010101101
George Boole
![Page 13: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/13.jpg)
Bit
ü Simplificação de “dígito binário”(BInary digiT em inglês)
ü É a menor unidade de informação que pode ser armazenada ou transmitida.
ü Um bit pode assumir somente 2 valores, por exemplo: 0 ou 1, verdadeiro ou falso.
![Page 14: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/14.jpg)
Byte
✓ Um byte nada tem de especial, é apenas um
número binário de oito algarismos
0 1 0 1 0 1 1 1
![Page 15: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/15.jpg)
Bytes
✓ 1 Byte é representado por uma cadeia de 8 bits
1 byte = 8 bits1024 bytes = 1 K byte
1.048.576 bytes = 1 Mega byte
![Page 16: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/16.jpg)
Noção de tamanho
Bit 20 0 ou 1
Byte 23 8 bits
Kilo 1 Kbyte 210 1024 Bytes
Mega 1 Mbyte 220 1 024 kB
Giga 1 Gbyte 230 1 024 MB
Tera 1 Tbyte 240 1 024 GB
peta 1 Pbyte 250 1 024 TB
Exa 1 Ebyte 260 1 024 PB
Zetta 1 Zbyte 270 1 024 EB
Yotta 1 Ybyte 280 1 024 ZB
![Page 17: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/17.jpg)
Decimais para Binários
7 2
31 2
11
= 111
Quantos Bits são Necessários para representar o numero 7?
![Page 18: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/18.jpg)
Binários para Decimais
2 2 2012
+ +1 x 1 x 1 x
4 + 2 + 1 =7
= 7
Número binário: 111
![Page 19: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/19.jpg)
Tipos de dadosTipo descrição Bits
byte Inteiro sem sinal 8 0 a 255
sbyte inteiro com sinal com sinal
8 -128 a 127
int inteiro com sinal com sinal
32 -2,147,483,648 to 2,147,483,647
uint Inteiro sem sinal 32 0 a 4294967295
short inteiro com sinal com sinal
16 -32.768 a 32.767
long inteiro com sinal com sinal
64 -922337203685477508 to 922337203685477507
ulong Inteiro sem sinal 64 0 a 18446744073709551615
![Page 20: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/20.jpg)
Importância da escolha correta do tipo de dadosEconomia de memória.
Economia de processador.
Economia de Disco.
Qual o resultado da economia?
![Page 21: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/21.jpg)
Conceito de Ponteiros
Um ponteiro é uma variável que representa a localização de um item de dados na memória ou seja ele aponta para um endereço de memória na qual existe um dado para ser processado. Os ponteiros são usados para otimizar e aumentar performance de memória em uma aplicação.
14/02/2019 21
![Page 22: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/22.jpg)
Armazenamento da informação na memória RAM
14/02/2019 22
RAM0012F588
num = 80
x = 123.89
0012F580 Variável inteira (int)
Variável dupla precisão (double)
Ponteiro
*p
*j
![Page 23: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/23.jpg)
Aplicações da Estrutura de Dados
Desenvolvimento de Banco de dados;
Software GIS (Sistema Geográfico de informções);
Geradores automáticos de programas;
Software de reconhecimento de padrões;
Sistemas de Computação Gráfica;
Sistema de IA (Inteligência Artificial);
Criação de Compiladores;
Expressões Regulares;
Processamento de Imagens Digitais
14/02/2019 23
![Page 24: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/24.jpg)
É uma sequência de operações bem definidas que, quando executadas por um computador, sempre termina num determinado período de tempo, produzindo uma solução ou indicando que a solução não pode ser obtida.
◼ Procedimento passo a passo para obtenção de um fim
Algoritmo
![Page 25: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/25.jpg)
Complexidade de Algoritmos
A Complexidade de um Algoritmo consiste na quantidade de “trabalho”necessária para a sua execução.
![Page 26: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/26.jpg)
Complexidade de Algoritmos
Um algoritmo serve para resolver um
determinado problema.
Todos os problemas têm sempre uma entrada de dados
(N)
O tamanho desse N afeta diretamente o tempo de resposta de um algoritmo
![Page 27: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/27.jpg)
A complexidade de um algoritmo pode ser dividido em:◦ Complexidade Espacial: Quantidade de recursos utilizados para resolver
o problema;
◦ Complexidade Temporal: Quantidade de Tempo utilizado.
Em ambos os casos, a complexidade é medida de acordo com o tamanho dos dados de entrada (N)
Complexidade de Algoritmos
![Page 28: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/28.jpg)
Operações primitivas
De modo geral, são as computações básicas realizadas por um algoritmo:
◦ Atribuição de valor para uma variável
◦ Comparação entre valores
◦ Cálculo aritmético
◦ Chamada de função
Sua definição exata não é importante.
Apesar de serem obviamente diferentes, são contabilizadas como tempo unitário
28
![Page 29: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/29.jpg)
Complexidade EspacialQ UA N TO S R EC URS O S D E M E M Ó R I A S ÃO N EC ES S Á R I OS PA R A E X EC U TA R O P R O GR A MA A BA I XO :
29
![Page 30: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/30.jpg)
Complexidade EspacialDouble: 64 bits
◦ 6*64bits = 384 bits
Int: 32 bits◦ 1*32bits = 32bits
Total de Recursos:◦ 416bits
◦ 52Bytes.
30
![Page 31: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/31.jpg)
Complexidade de Algoritmos
Existem três escalas de complexidade:◦ Melhor Caso
◦ Pior Caso
Nas três escalas, a função f(N) retorna a complexidade de um algoritmo com entrada de N elementos
![Page 32: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/32.jpg)
Complexidade de Algoritmos – Melhor Caso
Definido pela letra grega Ω (Ômega)
É o menor tempo de execução em uma entrada de tamanho N
É pouco usado, por ter aplicação em poucos casos.
Ex.:
◦ Se tivermos uma lista de N números e quisermos encontrar algum deles assume-se que a complexidade no melhor caso é f(N) = Ω (1), pois assume-se que o número estaria logo na cabeça da lista.
![Page 33: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/33.jpg)
Melhor casoEncontrar o número 35
• Se tivermos uma lista de N números e quisermos encontrar algum deles assume-se que a complexidade no melhor caso é f(N) = Ω (1), pois assume-se que o número estaria logo na cabeça da lista.
33
35 23 20 10 22 10 15 22 1 3
![Page 34: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/34.jpg)
Complexidade de Algoritmos
–Pior Caso
Será o caso utilizado durante esse curso
Representado pela letra grega O (O maiúsculo. Trata-se da letra grega ômicron maiúscula)
É o método mais fácil de se obter. Baseia-se no maior tempo de execução sobre todas as entradas de tamanho N
Ex.:
◦ Se tivermos uma lista de N números e quisermos encontrar algum deles, assume-se que a complexidade no pior caso é O (N), pois assume-se que o número estaria, no pior caso, no final da lista. Outros casos adiante
![Page 35: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/35.jpg)
Complexidade de Algoritmos –
Pior Caso• Se tivermos uma lista de N números e quisermos encontrar algum deles, assume-se que a complexidade
no pior caso é O (N), pois assume-se que o número estaria, no pior caso, no final da lista.
35 23 20 10 22 10 15 22 1 3
![Page 36: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/36.jpg)
Complexidade de Algoritmos
Mas como saber qual é a complexidade de um determinado algoritmo implementado?
Para resolver esse problema, dividiu-se os algoritmos em “Classes de Problemas”, de acordo com o parâmetro que afeta o algoritmo de forma mais significativa
![Page 37: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/37.jpg)
Classes de Algoritmos
São elas:
1. Complexidade Constante
2. Complexidade Linear
3. Complexidade Quadrática
4. Complexidade Cúbica
5. Complexidade Exponencial
![Page 38: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/38.jpg)
Complexidade Constante
São os algoritmos de complexidade O(1)
Independe do tamanho N de entradas
É o único em que as instruções dos algoritmos são executadas num tamanho fixo de vezes
Ex.:int RetornaPrimeiro(List: t){
return t[0];
}
![Page 39: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/39.jpg)
Complexidade Linear
São os algoritmos de complexidade O(N)
Uma operação é realizada em cada elemento de entrada, ex.: pesquisa de elementos em uma lista
Procedure Busca(Lista, x)
i:=0;
while Lista.Elemento[i] <> x do
if i >= Lista.MaxTam then
pos := -1
else
pos := i;
i := i+1;
End;
Retorna i
![Page 40: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/40.jpg)
Complexidade Quadrática
São os algoritmos de complexidade O(N²)
Itens são processados aos pares, geralmente com um loop dentro do outro
Ex.:
Procedure SomaMatriz(Mat1, Mat2);
Var i, j: integer, MatRes;
Begin
for i:=1 to n do
for j:=1 to n do
MatRes[i,j] := Mat1[i, j] + Mat2[i,j];
![Page 41: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/41.jpg)
Complexidade Cúbica
São os algoritmos de complexidade O(N³)
Itens são processados três a três, geralmente com um loop dentro do outros dois
Ex.:Procedure SomaElementos_Vetor_Indices_Matriz
(mat: Matriz, vet: Vetor);
Var i, j: integer;
Begin
for i:=1 to n do
for j:=1 to n do
for k:=1 to n do
mat[i, j] := mat[i, j] + vet[k];
![Page 42: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/42.jpg)
Complexidade Exponencial
São os algoritmos de complexidade O(2N)
Utilização de “Força Bruta” para resolvê-los (abordagem simples para resolver um determinado problema, geralmente baseada diretamente no enunciado do problema e nas definições dos conceitos envolvidos)
Geralmente não são úteis sob o ponto de vista prático
![Page 43: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/43.jpg)
◼Bubble sort
Métodos simples de Ordenação de dados
![Page 44: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/44.jpg)
Bubble sortO bubble sort, ou ordenação por flutuação (literalmente "por bolha"), é um algoritmo simples.
A ideia é percorrer o vetor diversas vezes até que ele esteja ordenado, a cada passagem o maior elemento é deslocado (flutua) para o final do vetor
44
![Page 45: ESTRUTURA DE DADOS I AULA I · 2019-02-14 · Uma estrutura de dados é um modo de armazenar os dados no computador para que os dados sejam usados com eficiência. Normalmente devem](https://reader033.vdocuments.com.br/reader033/viewer/2022050119/5f4fbd5357712b67c20c8c5c/html5/thumbnails/45.jpg)
Bubble sortEssa movimentação lembra a forma como as bolhas em um tanque de água procuram seu próprio nível, e disso vem o nome do algoritmo.
45