Beruflich Dokumente
Kultur Dokumente
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
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