Sie sind auf Seite 1von 11

N

I
C
A
M
A
R
G
O
R
P

A
D
E
U
Q
S

O
D
O
MT

de

i
c
a
den
r
o

a
l

r
liza
a
e
r

a
r
".
pa
a
a
j
u
m
b
a
r
r
u
g
ro
"b
p
o

d
y

o
t
o

m
t
m
el
e
t
n
Algori
a
i
d
me
o
l
g
e
r
r
una

Queselmtodo
Bsqueda
Consisteenacomodarelvectormoviendoel
mayor hasta la ltima casilla comenzando
desdelacasillacerodelvectorhastahaber
acomodado el nmero ms grande el la
ltima posicin, una vez acomodado el ms
grande,prosigueaencontraryacomodarel
siguientemsgrandecomparandodenuevo
losnmerosdesdeeliniciodelvector,yas
sigue hasta ordenar todo los elementos el
arreglo.Estealgoritmoesmuydeficienteya
que al ir comparando las casillas para
buscarelsiguientemsgrande,stevuelvea
comparar las ya ordenadas. A pesar de ser
elalgoritmodeordenamientomsdeficiente
que hay, ste es el ms usado en todos los
lenguajesdeprogramacin.

Esrecorrertodoelarreglolamismacantidad
devecescomoelementostengaelarreglo
menosuno,comparandolosvaloresdedos
elementosdelarregloyordenndolos
dependiendosisedeseadescendenteo
ascendentemente.

Algoritmo

algoritmoburbuja(A:arraydenelementosindizadosde1an)
paraidesde1hastan1hacer://lasn1pasadas
parajdesde1hastanihacer://elrecorrido
siA[j]>A[j+1]entonces//Sinoestnenorden
intercambiarA[j]yA[j+1]//Seintercambian
finpara
finpara
finalgoritmo

Programa
publicclassBurbuja{
publicstaticvoidmain(Stringarg[])throwsIOException{/*creaciondelobjetoparaleerporteclado*/
BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));/*ingresodeltamaodearreglos*/
System.out.print("\nIngreseNumerodeDatosaIngresar:");
inttam=Integer.parseInt(in.readLine());/*creaciondelarreglo*/
intarr[]=newint[tam];
System.out.println();/*lecturadelarreglo*/
intj=0;
for(inti=0;i<arr.length;i++){
j+=1;
System.out.print("Elemento"+j+":");
arr[i]=Integer.parseInt(in.readLine());
}
burbuja(arr);
}
staticvoidburbuja(intarreglo[]){
for(inti=0;i<arreglo.length1;i++){
for(intj=0;j<arreglo.length1;j++){
if(arreglo[j]<arreglo[j+1]){
inttmp=arreglo[j+1];
arreglo[j+1]=arreglo[j];
arreglo[j]=tmp;
}
}
}
for(inti=0;i<arreglo.length;i++){
System.out.print(arreglo[i]+"\n");
}
}
}

D
E
U
Q
S

A
I
R
A
N
I
AB

a
n
u

r
a
z
i
eal
r

a
r
a
p

ama
r
g
o
r
p

y
o
m
t
i
r
o
g
l
A
"
a
i
r
a
n
i
b
da
e
u
q
s

B
"

Dequsetratala
Bsqueda
Binaria
Se denomina as porque el algoritmo
divide en dos el arreglo, aludiendo al
conceptodebit,elcualpuedetenerdos
estados.
La condicinpara usareste algoritmo
es que los datos dentro del arreglo
estnordenadosdemenoramayor.
Est recomendado para buscar en
arreglosdegrantamao

Sirve para buscar elementos en un arreglo


ordenado.
En un arreglo ordenado de 1 048 576
elementos, la cantidad mxima de
comparaciones ser de 20. Mientras que en
una bsqueda lineal se comparara los 1
048 576 elementos.
Ventaja:
Es mucho ms eficiente que la bsqueda
lineal.
Requisito:
El arreglo debe estar ordenado

Algoritmo
inf=0
sup=tam1
Mientrasinf<=sup:
centro=((sup+inf)/2)/*divisinentera:setruncalaparte
decimal*/
Sivec[centro]==datodevolververdaderoy/opos,delocontrario:
Sidato<vec[centro]entonces:
sup=centro1
Encasocontrario:
inf=centro+1
Fin(Mientras)
DevolverFalso
FIN

Programa
publicclassBusquedaBinaria{
publicstaticintbusquedaBinaria(intvector[],intdato){
intn=vector.length;
intcentro,inf=0,sup=n1;
while(inf<=sup){
centro=(sup+inf)/2;
if(vector[centro]==dato){
returncentro;
}elseif(dato<vector[centro]){
sup=centro1;
}else{
inf=centro+1;
}
}
return1;
}
publicstaticvoidmain(String[]args){
int[]vector={1,4,7,8,9,14,23,47,56,60,61,63,65,66,68,69,70,73,76,77,
79,80,82};
intvalorBuscado=60;
System.out.println(busquedaBinaria(vector,valorBuscado));
}
}

10

Bsqueda binaria

3
1

Ej:Buscar0(cero)
-3
[0]

-1

[1]

[2]

[3]

100

150
[6]

GRACIAS

Das könnte Ihnen auch gefallen