Anda di halaman 1dari 7

Algoritmos e Estruturas de Dados 1

Conceitos
At agora, todas as informaes num rograma eram escalares !um "nico #alor$. %ueremos re resentar informaes or meio de #&rios #alores. Vetores s'o agregados homog(neos de #alores. Algumas linguagens de rograma'o usam recursos ara dar im ress'o )ue os #etores s'o heterog(neos.

Vetores
Prof. Bruno Schneider

A licaes

Caracter,sticas im ortantes de um #etor

Com #etores, temos facilidade ara re resentar*

Ca acidade* a )uantidade de elementos )ue odem ser colocadas num #etor.

+ma informa'o or meio de #&rios #alores do mesmo ti o, +ma grande )uantidade de informaes do mesmo ti o.

Algumas linguagens de rograma'o usam recursos ara dar a im ress'o de )ue a ca acidade de um #etor ode ser alterada.

-amanho* a )uantidade de elementos )ue e.istem num #etor num determinado instante. Acesso aos elementos* normalmente ro orcionado or meio de uma o era'o )ue associa um ,ndice a um elemento do #etor.
4

Vetores em algoritmos

E..* Calcular a mdia dos elementos de um #etor


1.2er a )uantidade de elementos. 3.2er cada elemento do #etor #alores, conforme a )uantidade de elementos. 4.Atri5uir 6ero 7 soma. 8.Para cada elemento do #etor #alores*
8.1 9ncrementar a soma conforme o elemento.

+m #etor de#e um nome !em o osi'o a um nome ara cada elemento$. /ota'o matem&tica a0uda a identificar cada elemento se aradamente. 1 eraes )ue en#ol#em o #etor como um todo odem ser usadas !e..* ler o #etor$.

:.Atri5uir 7 mdia, a soma di#idida ela )uantidade de elementos. ;.Escre#er a mdia.


5 6

E..* <enor dos elementos de um #etor


1.Se0a Vi, i = >?..n@ os elementos em )uest'o. 3.2er n. 4.2er Vi i. 8.Atri5uir V0 ao menor. :.Para cada i = >1..n@, faa*
:.1 Se Vi A menor, ent'o atri5uir Vi ao menor.

Vetores em CBB
Duas formas*

A herana de C, nati#a da linguagem.


1 era'o s'o sem re a licadas nos elementos. Ca acidade n'o se altera. E.istem o eraes ara o #etor como um todo. Ca acidade C#ari&#elD.

Da 5i5lioteca adr'o #ector.


;.Escre#er menor.
7 8

E..* Calcular a mdia dos elementos de um #etor em CBB


cout AA E%uantos elementos #oce dese0a rocessarF EG unsigned int )tdeElementosG cin HH )tdeElementosG cout AA EEntre com os #alores* EG float soma I ?G float #etor>)tdeElementos@G for !unsigned int i I ?G i A )tdeElementosG BBi$ J cin HH #etor>i@G soma BI #etor>i@G K cout AA EA media eL E AA soma M )tdeElementos AA E.NnEG

E..* Calcular a mdia dos elementos de um #etor em CBB


Oinclude AiostreamH Oinclude A#ectorH ... cout AA E%uantos elementos #oce dese0a rocessarF EG unsigned int )tdeElementosG cin HH )tdeElementosG cout AA EEntre com os #alores* EG float soma I ?G #ectorAfloatH #etor!)tdeElementos$G for !unsigned int i I ?G i A )tdeElementosG BBi$ J cin HH #etor>i@G soma BI #etor>i@G K cout AA EA media eL E AA soma M )tdeElementos AA E.NnEG
9 10

Determina'o da ca acidade de um #etor

Determina'o da ca acidade de um #etor

A ca acidade conhecida )uando o rograma criado !e..* calcular o menor de 1?? n"meros$. A ca acidade conhecida em tem o de e.ecu'o, antes da determina'o dos #alores. A ca acidade n'o conhecida at )ue todos os #alores se0am determinados.

Solues oss,#eis ara as situaes em )ue a )uantidade de elementos n'o conhecida antes da leitura dos elementos*

Chutar uma ca acidade nem muito e)uena, nem muito alta, criar uma lPgica se arando a ca acidade e o tamanho, cru6ar os dedos. <odificar a ca acidade do #etor conforme os dados s'o lidos.

11

12

E.erc,cios

Vetores de caracteres

Qaa um rograma )ue l( #&rios n"meros e de ois os escre#e em ordem in#ersa. Qaa um rograma )ue l( #&rios n"meros e de ois os escre#e das e.tremidades at os intermedi&rios ! rimeiro, "ltimo, segundo, en"ltimo, terceiro, ...$ Qaa um rograma )ue l( um con0unto n"meros e de ois fica consultando se determinado n"mero ertence ao con0unto lido, ara tantos casos )uanto o usu&rio )uiser.

Como re resentar os caracteresF


mai"sculas e min"sculas acentua'o

Strings e sua re resenta'o 1 eraes ara strings

atri5uir, #erificar e)ui#al(ncia, concatenar, in#erter, con#erter ara mai"sculas, contar a )uantidade de elementos, inser'o, remo'o, ordenar, ...

13

14

1rdena'o

Pr&tica das o eraes com strings Pr&tica* Como colocar #&rios elementos em ordemF

15

16

Algoritmos famosos de ordena'o


!ordenam raticamente sem es ao e.tra$

Bu55le Sort
Considerado um dos mais sim les Considerado ouco eficiente Analogia* 1s n"meros grandes s'o 5olhas )ue #'o su5indo no !indo ara o final do$ #etor.

Bu55le sort !mtodo da 5olha$ Selection sort !mtodo da sele'o$ 9nsertion sort !mtodo da inser'o$

Exemplo animado

17

18

Bu55le Sort

Selection Sort

Considerado um dos mais sim les Considerado ouco eficiente Analogia* 1s n"meros grandes s'o 5olhas )ue #'o su5indo no !indo ara o final do$ #etor.

Bem sim les, efici(ncia ra6o&#el 9deias 5&sicas*


Exemplo animado
20

encontrar o menor e trocar ele com )uem esti#er na rimeira osi'o, encontrar o segundo menor e trocar com )uem esti#er na segunda osi'o...

19

Selection Sort

9nsertion Sort

Bem sim les, efici(ncia ra6o&#el 9deias 5&sicas*

Considerado um 5om meio termo em sim licidade e efici(ncia. 9deias 5&sicas*

encontrar o menor e trocar ele com )uem esti#er na rimeira osi'o, encontrar o segundo menor e trocar com )uem esti#er na segunda osi'o...

f&cil inserir um elemento num #etor ordenado, reser#ando a ordena'o, a ordena'o de um #etor ode ser entendida como #&rias inseres num #etor ordenado.
Exemplo animado

21

22

9nsertion Sort

Busca

Considerado um 5om meio termo em sim licidade e efici(ncia. 9deias 5&sicas*

Qre)uentemente, recisamos #er se um determinado elemento ertence a um con0unto. Qaa um rograma ara isso. A 5usca ode ser 5em mais r& ida se o con0unto de #alores esti#er ordenado, ois assim odemos sa5er Cem )ual dire'oD estaria o #alor Pr&tica* Adi#inhe o n"mero )ue eu estou ensando.

f&cil inserir um elemento num #etor ordenado, reser#ando a ordena'o, a ordena'o de um #etor ode ser entendida como #&rias inseres num #etor ordenado.

23

24

Busca Bin&ria

Para tentar encontrar um n"mero num #etor ordenado, usando a menor )uantidade oss,#el de tentati#as, comeamos elo meio, desco5rimos )ual das metades de#e ter o n"mero e recomeamos.

25