La búsqueda es aquella que está diseñada para localizar un elemento con ciertas propiedades dentro de una estructura de datos; por ejemplo, ubicar el registro correspondiente a cierta persona en una base de datos, o la mejor movida en una partida de ajedrez.La variante más simple del problema es la búsqueda de un número en un vector.
TIPOS DE BUSQUEDA
Búsqueda secuencial
Se utiliza cuando el vector no está ordenado o no puede ser ordenado previamente. Consiste en buscar el elemento comparándolo secuencialmente con cada elemento del array hasta encontrarlo, o hasta que se llegue al final. La existencia se puede asegurar cuando el elemento es localizado, pero no podemos asegurar la no existencia hasta no haber analizado todos los elementos del array.
Búsqueda binaria (dicotómica)
Se utiliza cuando el vector en el que queremos determinar la existencia de un elemento está previamente ordenado. Este algoritmo reduce el tiempo de búsqueda considerablemente, ya que disminuye exponencialmente el número de interaciones necesarias.
Para implementar este algoritmo se compara el elemento a buscar con un elemento cualquiera del array (normalmente el elemento central): si el valor de éste es mayor que el del elemento buscado se repite el procedimiento en la parte del array que va desde el inicio de éste hasta el elemento tomado, en caso contrario se toma la parte del array que va desde el elemento tomado hasta el final. De esta manera obtenemos intervalos cada vez más pequeños, hasta que se obtenga un intervalo indivisible. Si el elemento no se encuentra dentro de este último entonces se deduce que el elemento buscado no se encuentra en todo el array.
sábado, 28 de agosto de 2010
CODIGO DE PROGRAMACION
CREAR UN PROGRAMA CON UN FOR, WHILE, Y DO WHILE QUE ME MUESTRE LOS NUMEROS PARES O IMPARES DE EL 1 AL 100 Y CREAR LAS TABLAS DE MULTIPLICAR CON DOS FOR ANIDADOS.
FOR:
import java.io.*;
class pares{
public static void main(String args[]){
System.out.println("\nNumeros impares del 100 al 1:\n");
for(int i=100 ; i>1 ; i-- ){
if ( i % 2 == 0 )
System.out.print(i+",");
} // fin del for
System.out.print("\n\nLo mismo pero de otra forma en el codigo. \n\n");
for(int i=100 ; i>1 ; i-=2 )
System.out.print(i+",");
System.out.print("\n");
} // fin de main
} // fin de la clase pares
WHILE:
import java.io.*;
class pares im{
public static void main(String [] args){
BufferedReader entrada=new BufferedReader(new InputStreamReader(System.in));
long numero;
String e= new String("");
try{
System.out.println("Escriba el numero que desea evaluar");
while(true)
{
System.out.print("numero :");
e=entrada.readLine();
numero=Integer.parseInt(e);
if(numero%2!=0)
System.out.println("\nEs impar");
else
System.out.println("\nEs Par");
}
}
catch(IOException er){
System.out.println(er);
}
}
}
DO WHILE:
import java.*;
class IMPAR
{
public static void main (String Args []){
// DataInputStream entrada=new DataInputStream(System.in);
int par=0;
int imp=0;
int res=0;
int i=0;
int t=0;
do
{
if(i%2==0)
{
System.out.println("pares"+" "+i);
}
i++;
}
while (i<101);
do
{
if(t%2==0)
{
}
else
{
System.out.println("impares"+" "+t);
}
t++;
}
while (t<101);
}
}
TABLAS:
import java.*;
public class TABLAS {
public static void main(String arg [])throws Exception{
int Resultado=0;
for (int x=1;x<=10;x++){
System.out.println ("tabla" );
for (int y=1;y<=10;y++){
Resultado=x*y;
System.out.println (" Tabla " + x + " * "+y+" = "+ Resultado);
}
}
}
}
FOR:
import java.io.*;
class pares{
public static void main(String args[]){
System.out.println("\nNumeros impares del 100 al 1:\n");
for(int i=100 ; i>1 ; i-- ){
if ( i % 2 == 0 )
System.out.print(i+",");
} // fin del for
System.out.print("\n\nLo mismo pero de otra forma en el codigo. \n\n");
for(int i=100 ; i>1 ; i-=2 )
System.out.print(i+",");
System.out.print("\n");
} // fin de main
} // fin de la clase pares
WHILE:
import java.io.*;
class pares im{
public static void main(String [] args){
BufferedReader entrada=new BufferedReader(new InputStreamReader(System.in));
long numero;
String e= new String("");
try{
System.out.println("Escriba el numero que desea evaluar");
while(true)
{
System.out.print("numero :");
e=entrada.readLine();
numero=Integer.parseInt(e);
if(numero%2!=0)
System.out.println("\nEs impar");
else
System.out.println("\nEs Par");
}
}
catch(IOException er){
System.out.println(er);
}
}
}
DO WHILE:
import java.*;
class IMPAR
{
public static void main (String Args []){
// DataInputStream entrada=new DataInputStream(System.in);
int par=0;
int imp=0;
int res=0;
int i=0;
int t=0;
do
{
if(i%2==0)
{
System.out.println("pares"+" "+i);
}
i++;
}
while (i<101);
do
{
if(t%2==0)
{
}
else
{
System.out.println("impares"+" "+t);
}
t++;
}
while (t<101);
}
}
TABLAS:
import java.*;
public class TABLAS {
public static void main(String arg [])throws Exception{
int Resultado=0;
for (int x=1;x<=10;x++){
System.out.println ("tabla" );
for (int y=1;y<=10;y++){
Resultado=x*y;
System.out.println (" Tabla " + x + " * "+y+" = "+ Resultado);
}
}
}
}
martes, 24 de agosto de 2010
ARREGLOS
Los arreglos son un conjunto de datos o una estructura de datos homogéneos que se encuentran ubicados en forma consecutiva en la memoria RAM ( sirve para almacenar datos en forma temporal).En si los arreglos puede definirse como un grupo o una colección finita, homogénea y ordenada de elementos.
ARREGLOS UNIDIMENSIONALES
Un arreglo es un conjunto finito y ordenado de elementos homogéneos. La propiedad ordenado significa que el primer elemento, el segundo, el tercero,el enésimo puede ser identificado. La homogeneidad implica que todos los elementos del arreglo son datos del mismo tipo.Un vector o arreglo unidimensional consta de un elementos que pueden representarse como:
A [1] A[2] A[3] ... A[i] ... A[n}
Nótese que todos los elementos comparten el mismo identificador (A en este caso) mientras
que el subíndice identifica a cada elemento individual.Al número de elementos de un vector se le denomina rango del vector.
Los vectores se almacenan en la memoria central del computador en un orden adyacente de
posiciones de memoria sucesivas. Cada elemento de un vector se puede procesar como si
fuera una variable simple que ocupa una posición de memoria dada, de manera tal que cada
elemento del vector es accesible directamente.
ARREGLOS BIDIMENSIONALES
Los arreglos bidimensionales se usan para representar datos que pueden verse como una tabla con filas y
columnas. La primera dimensión del arreglo representa las columnas, cada elemento contiene un valor y cada dimensión representa una relación
La representación en memoria se realiza de dos formas : almacenamiento por columnas o por renglones.
Para determinar el número total de elementos en un arreglo bidimensional usaremos las siguientes fórmulas:
RANGO DE RENGLONES (R1) = Ls1 − (Li1+1)
RANGO DE COLUMNAS (R2) = Ls2 − (Li2+1)
No. TOTAL DE COMPONENTES = R1 * R2
ARREGLOS MULTIDIMENSIONALES
Este también es un tipo de dato estructurado, que está compuesto por un dimensiones. Para hacer referencia acada componente del arreglo es necesario utilizar un índices, uno para cada dimensión
Para determinar el número de elementos en este tipo de arreglos se usan las siguientes fórmulas:
RANGO (Ri) = lsi − (lii + 1)
No. TOTAL DE ELEMENTOS = R1 * R2* R3 * ...* Rn
donde:
i = 1 ... n
para i desde 1 hasta N haz
x<−−arreglo[i]
ESCRITURA
Consiste en asignarle un valor a cada elemento del arreglo.
La escritura se realiza de la siguiente manera:
para i desde 1 hasta N haz
arreglo[i]<−−x
ASIGNACION
No es posible asignar directamente un valor a todo el arreglo, por lo que se realiza de la manera siguiente:
para i desde 1 hasta N haz
arreglo[i]<−−algún_valor
ACTUALIZACION
Dentro de esta operación se encuentran las operaciones de eliminar, insertar y modificar datos. Para realizar
este tipo de operaciones se debe tomar en cuenta si el arreglo está o no ordenado.
ARREGLOS UNIDIMENSIONALES
Un arreglo es un conjunto finito y ordenado de elementos homogéneos. La propiedad ordenado significa que el primer elemento, el segundo, el tercero,el enésimo puede ser identificado. La homogeneidad implica que todos los elementos del arreglo son datos del mismo tipo.Un vector o arreglo unidimensional consta de un elementos que pueden representarse como:
A [1] A[2] A[3] ... A[i] ... A[n}
Nótese que todos los elementos comparten el mismo identificador (A en este caso) mientras
que el subíndice identifica a cada elemento individual.Al número de elementos de un vector se le denomina rango del vector.
Los vectores se almacenan en la memoria central del computador en un orden adyacente de
posiciones de memoria sucesivas. Cada elemento de un vector se puede procesar como si
fuera una variable simple que ocupa una posición de memoria dada, de manera tal que cada
elemento del vector es accesible directamente.
ARREGLOS BIDIMENSIONALES
Los arreglos bidimensionales se usan para representar datos que pueden verse como una tabla con filas y
columnas. La primera dimensión del arreglo representa las columnas, cada elemento contiene un valor y cada dimensión representa una relación
La representación en memoria se realiza de dos formas : almacenamiento por columnas o por renglones.
Para determinar el número total de elementos en un arreglo bidimensional usaremos las siguientes fórmulas:
RANGO DE RENGLONES (R1) = Ls1 − (Li1+1)
RANGO DE COLUMNAS (R2) = Ls2 − (Li2+1)
No. TOTAL DE COMPONENTES = R1 * R2
ARREGLOS MULTIDIMENSIONALES
Este también es un tipo de dato estructurado, que está compuesto por un dimensiones. Para hacer referencia acada componente del arreglo es necesario utilizar un índices, uno para cada dimensión
Para determinar el número de elementos en este tipo de arreglos se usan las siguientes fórmulas:
RANGO (Ri) = lsi − (lii + 1)
No. TOTAL DE ELEMENTOS = R1 * R2* R3 * ...* Rn
donde:
i = 1 ... n
para i desde 1 hasta N haz
x<−−arreglo[i]
ESCRITURA
Consiste en asignarle un valor a cada elemento del arreglo.
La escritura se realiza de la siguiente manera:
para i desde 1 hasta N haz
arreglo[i]<−−x
ASIGNACION
No es posible asignar directamente un valor a todo el arreglo, por lo que se realiza de la manera siguiente:
para i desde 1 hasta N haz
arreglo[i]<−−algún_valor
ACTUALIZACION
Dentro de esta operación se encuentran las operaciones de eliminar, insertar y modificar datos. Para realizar
este tipo de operaciones se debe tomar en cuenta si el arreglo está o no ordenado.
Suscribirse a:
Entradas (Atom)