martes, 7 de septiembre de 2010

ORDENAMIENTO

EL ordenamiento es un de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado de objetos en una secuencia determinada. Cuando se analiza un método de ordenación, hay que determinar cuántas comparaciones e intercambios se realizan para el caso más favorable, para el caso medio y para el caso más desfavorable.


METODO RAPIDO

Si bien el método de la burbuja era considerado como el peor método de ordenación simple o menos eficiente, el método Quicksort basa su estrategia en la idea intuitiva de que es más fácil ordenar una gran estructura de datos subdividiéndolas en otras más pequeñas introduciendo un orden relativo entre ellas. En otras palabras, si dividimos el array a ordenar en dos subarrays de forma que los elementos del subarray inferior sean más pequeños que los del subarray superior, y aplicamos el método reiteradamente, al final tendremos el array inicial totalmente ordenado. Existen además otros métodos conocidos, el de ordenación por montículo y el de shell.

Metodo de burbrja

Es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeñas "burbujas". También es conocido como el método del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación, siendo el más sencillo de implementar

Selección.

Los métodos de ordenación por selección se basan en dos principios básicos:
Seleccionar el elemento más pequeño (o más grande) del arreglo.
Colocarlo en la posición más baja (o más alta) del arreglo.
A diferencia del método de la burbuja, en este método el elemento más pequeño (o más grande) es el que se coloca en la posición final que le corresponde.



Inserción.
El fundamento de este método consiste en insertar los elementos no ordenados del arreglo en subarreglos del mismo que ya estén ordenados. Dependiendo del método elegido para encontrar
es una manera muy natural de ordenar para un ser humano, y puede usarse fácilmente para ordenar un mazo de cartas numeradas en forma arbitraria. Requiere O(n²) operaciones para ordenar una lista de n elementos.

Inicialmente se tiene un solo elemento, que obviamente es un conjunto ordenado. Después, cuando hay k elementos ordenados de menor a mayor, se toma el elemento k+1 y se compara con todos los elementos ya ordenados, deteniéndose cuando se encuentra un elemento menor (todos los elementos mayores han sido desplazados una posición a la derecha). En este punto se inserta el elemento k+1 debiendo desplazarse los demás elementos.

BUSQUEDAD

Declarar un vector y matriz



declaracion de matriz:

import java.io.*;

class matriz{
public static void main(String alex[])throws Exception{
 DataInputStream entrada = new DataInputStream(System.in);
System.out.print("ingrese tamaño de la matriz");
int x=Integer.parseInt(entrada.readLine());
int matriz[][];
matriz = new int[4][4];
//for (int x=0; x < matrix.length; x++) {
// for (int y=0; y < matriz[x].length; y++) {
// System.out.println (matriz[x][y]);
}
}

declaracion de vectores:

import java.io.*;

class vector{
public static void main(String arg[])throws Exception{
DataInputStream entrada = newDataInputStream(System.in);
System.out.print("ingrese tamaño del vector");
int x=Integer.parseInt(entrada.readLine());
double vectora1 []=new double [];
double vectorb1 []=new double [];
for(int i=0;i<x;i++){
System.out.print("ingrese los valores del vector a");
vectora1[i]=Double.parseDouble(entrada.readLine());
}
for(int i=0;i<x;i++){
System.out.print("ingrese los valores del vectorb");
vectorb1[i]=Double.parseDouble(entrada.readLine());
}