Sunteți pe pagina 1din 4

BURBUJA (intercambio directo) Consiste en pasadas, donde 1 lo dejamos bien colocado y el resto los intentamos dejar bien colocados.

El mas grande se mueve hacia el final, pero el mas pequeo hacia el principio
15 8 7 6 8 7 6 7 7 6 8 8 6 15 15 15 43 43 43 43

El mtodo burbuja consiste en: N-1 pasadas al vector de forma que vayamos recorrindolo y e intercambiando los valores segn sean o no mayores o menores. En cada pasada habremos colocado un nmero en su posicin definitiva. si las pasadas son de menor a mayor -> el mayor si las pasadas son de mayor a menor -> el menor En cada pasada el bucle interno se reduce en una unidad. Posicin: 1 2 Nmeros: 15 67

3 8

4 16

5 44

6 27

7 12

8 35 BURBUJA

FOR i:=1 to N-1

FOR j:=1 to N-i

v[j] : v[j+1]

15 15 8 8 8 8 8 8

67 8 15 15 15 12 12 12

8 16 16 16 12 15 15 15

16 44 27 12 16 16 16 16

44 27 12 27 27 27 27 27

27 12 35 35 35 35 35 35

12 35 44 44 44 44 44 44

35 67 67 67 67 67 67 67

SWITCH (interruptor)

Se trata del mtodo burbuja, pero, aadiendo un interruptor (variable booleana) que nos indica si en cada vuelta hemos realizado algn cambio de forma que cuando detectamos que no hay cambio terminamos el proceso. Nmeros: 15 67 8 16 44 haycambios:=false; i:=1 repeat for j:=1 to N-i inc(i) until nohaycambios; 27 12 35 SWITCH

15 8 8 8 8 8

8 15 15 15 12 12

16 16 16 12 15 15

44 27 12 16 16 16

27 12 27 27 27 27

12 35 35 35 35 35

35 44 44 44 44 44

67 67 67 67 67 67

SI SI SI SI SI NO->FIN

Bsqueda binaria o dicotomica Una vez que ya tenemos un vector (o en general cualquier sistema de almacenamiento de informacin) ordenado, podemos aplicar, a la hora de realizar bsquedas de elementos, un algoritmo de coste logaritmico. Hasta ahora solo hemos visto en clase recorridos secuenciales cuyo coste, en tiempo es del orden del numero de elementos almacenados N. Con la bsqueda dicotomica el coste es log2N.

LOG2N= X N = 2x Vemoslo en nmeros N 10 100 1000 bsqueda secuencial 10 100 1000 bsqueda binaria 4 7 10 24>10 27>100 210>1000

Si hemos de buscar un elemento en una estructura ordenada iremos dividiendo el espacio de bsqueda cada vez por la mitad hasta encontrar el elemento o verificar que no esta Podemos hacerlo con una funcion a la que le pasamos como informacin de entrada: - La estructura con la informacin (vector) - El valor que quiero buscar Y nos devolvera la posicin en la que se encuentra o un valor de posicin imposible (o negativo)

Function busca (v:vector ; valorbuscado:integer) : integer; 1 17 26 29 34 34 34 34 34 34 34 34 34 35 35 40 valor buscado -> 35 mini:=1; maxi:=16; punto_de_acceso:=(mini+maxi) div 2; 1 16 8 10 16 13 16 16 16 mini 1 9 13 maxi 16 16 16 punto_de_acceso 8 12 14 v[PDA] 34 34 35

vuelta de bucle 0 1 2 valor buscado -> 2 vuelta de bucle 0 1 2 3

mini 1 1 1 1

maxi 16 7 3 1

punto_de_acceso 8 4 2 1

v[PDA] 34 29 17 1

.menuPres li { list-style: none; top: 230px; left: 330px; position:relative; display: inline;/* Es necesario para que los elementos de la lista se situen uno tras otro (horizontalidad) */ } .menuPres li a, #menuList1 li a:focus { list-style: none; background-color: #FF0000; border: 1px solid #FAFAFA; padding:10px; text-decoration: none; color: #FAFAFA; font-family: Verdana,Arial,Helvetica; font-size: 12px; font-weight:bold; } .menuPres li a:hover { background-color: #FFFF00; border-color: #FFF; color: #000000; }

<ul class="menuPres"> <li><a href='#' rel='nofollow'>INICI</a></li> <li><a href='#' rel='nofollow'>PRESENTACIO</a></li> <li><a href='#' rel='nofollow'>GALERIA D'IMATGES</a></li> <li><a href='#' rel='nofollow'>FORMULARI</a></li> <li><a href='#' rel='nofollow'>SELECCIONS PROPIES</a></li> </ul>

S-ar putea să vă placă și