dietas para adelgazar font: normal normal 13px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #ffffff; background: #000000 url(http://www.blogblog.com/1kt/awesomeinc/body_background_dark.png) repeat scroll top left; } html body .content-outer { min-width: 0; max-width: 100%; width: 100%; } a:link { text-decoration: none; color: #888888; } a:visited { text-decoration: none; color: #444444; } a:hover { text-decoration: underline; color: #cccccc; } .body-fauxcolumn-outer .cap-top { position: absolute; z-index: 1; height: 276px; width: 100%; background: transparent url(http://www.blogblog.com/1kt/awesomeinc/body_gradient_dark.png) repeat-x scroll top left; _background-image: none; } /* Columns ----------------------------------------------- */ .content-inner { padding: 0; } .header-inner .section { margin: 0 16px; } .tabs-inner .section { margin: 0 16px; } .main-inner { padding-top: 30px; } .main-inner .column-center-inner, .main-inner .column-left-inner, .main-inner .column-right-inner { padding: 0 5px; } *+html body .main-inner .column-center-inner { margin-top: -30px; } #layout .main-inner .column-center-inner { margin-top: 0; } /* Header ----------------------------------------------- */ .header-outer { margin: 0 0 0 0; background: transparent none repeat scroll 0 0; } .Header h1 { font: normal bold 40px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #ffffff; text-shadow: 0 0 -1px #000000; } .Header h1 a { color: #ffffff; } .Header .description { font: normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #ffffff; } .header-inner .Header .titlewrapper, .header-inner .Header .descriptionwrapper { padding-left: 0; padding-right: 0; margin-bottom: 0; } .header-inner .Header .titlewrapper { padding-top: 22px; } /* Tabs ----------------------------------------------- */ .tabs-outer { overflow: hidden; position: relative; background: #141414 none repeat scroll 0 0; } #layout .tabs-outer { overflow: visible; } .tabs-cap-top, .tabs-cap-bottom { position: absolute; width: 100%; border-top: 1px solid #222222; } .tabs-cap-bottom { bottom: 0; } .tabs-inner .widget li a { display: inline-block; margin: 0; padding: .6em 1.5em; font: normal bold 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #ffffff; border-top: 1px solid #222222; border-bottom: 1px solid #222222; border-left: 1px solid #222222; } .tabs-inner .widget li:last-child a { border-right: 1px solid #222222; } .tabs-inner .widget li.selected a, .tabs-inner .widget li a:hover { background: #444444 none repeat-x scroll 0 -100px; color: #ffffff; } /* Headings ----------------------------------------------- */ h2 { font: normal bold 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #ffffff; } /* Widgets ----------------------------------------------- */ .main-inner .section { margin: 0 27px; padding: 0; } .main-inner .column-left-outer, .main-inner .column-right-outer { margin-top: 0; } #layout .main-inner .column-left-outer, #layout .main-inner .column-right-outer { margin-top: 0; } .main-inner .column-left-inner, .main-inner .column-right-inner { background: transparent none repeat 0 0; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .2); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .2); -goog-ms-box-shadow: 0 0 0 rgba(0, 0, 0, .2); box-shadow: 0 0 0 rgba(0, 0, 0, .2); -moz-border-radius: 0; -webkit-border-radius: 0; -goog-ms-border-radius: 0; border-radius: 0; } #layout .main-inner .column-left-inner, #layout .main-inner .column-right-inner { margin-top: 0; } .sidebar .widget { font: normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #ffffff; } .sidebar .widget a:link { color: #888888; } .sidebar .widget a:visited { color: #444444; } .sidebar .widget a:hover { color: #cccccc; } .sidebar .widget h2 { text-shadow: 0 0 -1px #000000; } .main-inner .widget { background-color: #141414; border: 1px solid #222222; padding: 0 15px 15px; margin: 20px -16px; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .2); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .2); -goog-ms-box-shadow: 0 0 0 rgba(0, 0, 0, .2); box-shadow: 0 0 0 rgba(0, 0, 0, .2); -moz-border-radius: 0; -webkit-border-radius: 0; -goog-ms-border-radius: 0; border-radius: 0; } .main-inner .widget h2 { margin: 0 -15px; padding: .6em 15px .5em; border-bottom: 1px solid #000000; } .footer-inner .widget h2 { padding: 0 0 .4em; border-bottom: 1px solid #000000; } .main-inner .widget h2 + div, .footer-inner .widget h2 + div { border-top: 1px solid #222222; padding-top: 8px; } .main-inner .widget .widget-content { margin: 0 -15px; padding: 7px 15px 0; } .main-inner .widget ul, .main-inner .widget #ArchiveList ul.flat { margin: -8px -15px 0; padding: 0; list-style: none; } .main-inner .widget #ArchiveList { margin: -8px 0 0; } .main-inner .widget ul li, .main-inner .widget #ArchiveList ul.flat li { padding: .5em 15px; text-indent: 0; color: #666666; border-top: 1px solid #222222; border-bottom: 1px solid #000000; } .main-inner .widget #ArchiveList ul li { padding-top: .25em; padding-bottom: .25em; } .main-inner .widget ul li:first-child, .main-inner .widget #ArchiveList ul.flat li:first-child { border-top: none; } .main-inner .widget ul li:last-child, .main-inner .widget #ArchiveList ul.flat li:last-child { border-bottom: none; } .post-body { position: relative; } .main-inner .widget .post-body ul { padding: 0 2.5em; margin: .5em 0; list-style: disc; } .main-inner .widget .post-body ul li { padding: 0.25em 0; margin-bottom: .25em; color: #ffffff; border: none; } .footer-inner .widget ul { padding: 0; list-style: none; } .widget .zippy { color: #666666; } /* Posts ----------------------------------------------- */ body .main-inner .Blog { padding: 0; margin-bottom: 1em; background-color: transparent; border: none; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, 0); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0); -goog-ms-box-shadow: 0 0 0 rgba(0, 0, 0, 0); box-shadow: 0 0 0 rgba(0, 0, 0, 0); } .main-inner .section:last-child .Blog:last-child { padding: 0; margin-bottom: 1em; } .main-inner .widget h2.date-header { margin: 0 -15px 1px; padding: 0 0 0 0; font: normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #666666; background: transparent none no-repeat scroll top left; border-top: 0 solid #222222; border-bottom: 1px solid #000000; -moz-border-radius-topleft: 0; -moz-border-radius-topright: 0; -webkit-border-top-left-radius: 0; -webkit-border-top-right-radius: 0; border-top-left-radius: 0; border-top-right-radius: 0; position: static; bottom: 100%; right: 15px; text-shadow: 0 0 -1px #000000; } .main-inner .widget h2.date-header span { font: normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif; display: block; padding: .5em 15px; border-left: 0 solid #222222; border-right: 0 solid #222222; } .date-outer { position: relative; margin: 30px 0 20px; padding: 0 15px; background-color: #141414; border: 1px solid #222222; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .2); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .2); -goog-ms-box-shadow: 0 0 0 rgba(0, 0, 0, .2); box-shadow: 0 0 0 rgba(0, 0, 0, .2); -moz-border-radius: 0; -webkit-border-radius: 0; -goog-ms-border-radius: 0; border-radius: 0; } .date-outer:first-child { margin-top: 0; } .date-outer:last-child { margin-bottom: 20px; -moz-border-radius-bottomleft: 0; -moz-border-radius-bottomright: 0; -webkit-border-bottom-left-radius: 0; -webkit-border-bottom-right-radius: 0; -goog-ms-border-bottom-left-radius: 0; -goog-ms-border-bottom-right-radius: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0; } .date-posts { margin: 0 -15px; padding: 0 15px; clear: both; } .post-outer, .inline-ad { border-top: 1px solid #222222; margin: 0 -15px; padding: 15px 15px; } .mobile .post-outer, .mobile .inline-ad { padding: 5px 15px; } .post-outer { padding-bottom: 10px; } .post-outer:first-child { padding-top: 0; border-top: none; } .post-outer:last-child, .inline-ad:last-child { border-bottom: none; } .post-body { position: relative; } .post-body img { padding: 8px; background: #222222; border: 1px solid transparent; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .2); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .2); box-shadow: 0 0 0 rgba(0, 0, 0, .2); -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; } h3.post-title, h4 { font: normal bold 22px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #ffffff; } h3.post-title a { font: normal bold 22px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #ffffff; } h3.post-title a:hover { color: #cccccc; text-decoration: underline; } .post-header { margin: 0 0 1em; } .post-body { line-height: 1.4; } .post-outer h2 { color: #ffffff; } .post-footer { margin: 1.5em 0 0; } #blog-pager { padding: 15px; font-size: 120%; background-color: #141414; border: 1px solid #222222; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .2); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .2); -goog-ms-box-shadow: 0 0 0 rgba(0, 0, 0, .2); box-shadow: 0 0 0 rgba(0, 0, 0, .2); -moz-border-radius: 0; -webkit-border-radius: 0; -goog-ms-border-radius: 0; border-radius: 0; -moz-border-radius-topleft: 0; -moz-border-radius-topright: 0; -webkit-border-top-left-radius: 0; -webkit-border-top-right-radius: 0; -goog-ms-border-top-left-radius: 0; -goog-ms-border-top-right-radius: 0; border-top-left-radius: 0; border-top-right-radius-topright: 0; margin-top: 1em; } .blog-feeds, .post-feeds { margin: 1em 0; text-align: center; color: #ffffff; } .blog-feeds a, .post-feeds a { color: #888888; } .blog-feeds a:visited, .post-feeds a:visited { color: #444444; } .blog-feeds a:hover, .post-feeds a:hover { color: #cccccc; } .post-outer .comments { margin-top: 2em; } /* Footer ----------------------------------------------- */ .footer-outer { margin: -0 0 -1px; padding: 0 0 0; color: #ffffff; overflow: hidden; } .footer-fauxborder-left { border-top: 1px solid #222222; background: #141414 none repeat scroll 0 0; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .2); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .2); -goog-ms-box-shadow: 0 0 0 rgba(0, 0, 0, .2); box-shadow: 0 0 0 rgba(0, 0, 0, .2); margin: 0 -0; } /* Mobile ----------------------------------------------- */ *+html body.mobile .main-inner .column-center-inner { margin-top: 0; } .mobile .main-inner { padding-top: 0; } .mobile .main-inner .widget { padding: 0 0 15px; } .mobile .main-inner .widget h2 + div, .mobile .footer-inner .widget h2 + div { border-top: none; padding-top: 0; } .mobile .footer-inner .widget h2 { padding: 0.5em 0; border-bottom: none; } .mobile .main-inner .widget .widget-content { margin: 0; padding: 7px 0 0; } .mobile .main-inner .widget ul, .mobile .main-inner .widget #ArchiveList ul.flat { margin: 0 -15px 0; } .mobile .main-inner .widget h2.date-header { right: 0; } .mobile .date-header span { padding: 0.4em 0; } .mobile .date-outer:first-child { margin-bottom: 0; border: 1px solid #222222; -moz-border-radius-topleft: 0; -moz-border-radius-topright: 0; -webkit-border-top-left-radius: 0; -webkit-border-top-right-radius: 0; -goog-ms-border-top-left-radius: 0; -goog-ms-border-top-right-radius: 0; border-top-left-radius: 0; border-top-right-radius: 0; } .mobile .date-outer { margin: 0; padding: 10px; border-color: #222222; border-width: 0 1px 1px; } .mobile .date-outer:last-child { margin-bottom: 0; } .mobile .main-inner { padding: 20px 10px; } .mobile .header-inner .section { margin: 0; } .mobile .tabs-inner .section { margin: 0 10px; } .mobile .main-inner .widget h2 { margin: 0; padding: 0; } .mobile .main-inner .widget h2.date-header span { padding: 0 10px; } .mobile .main-inner .widget .widget-content { margin: 0; padding: 7px 0 0; } .mobile .main-inner .column-center-inner, .mobile .main-inner .column-left-inner, .mobile .main-inner .column-right-inner { padding: 0; } .mobile .main-inner .column-left-inner, .mobile .main-inner .column-right-inner { background: transparent none repeat 0 0; -moz-box-shadow: none; -webkit-box-shadow: none; -goog-ms-box-shadow: none; box-shadow: none; } .mobile .date-posts { margin: 0; padding: 0; } .mobile .post-outer { margin: 0; padding: 10px; } .mobile .footer-fauxborder-left { margin: 0; } .mobile .main-inner .section:last-child .Blog:last-child { margin-bottom: 0; } .mobile .mobile-link-button { background: #444444 none repeat-x scroll 0 -100px; } .mobile-link-button a:link, .mobile-link-button a:visited { color: #ffffff; } -->

sábado, 20 de noviembre de 2010

Ordenación por monticulos (Heap Sort) Java

El algoritmo de ordenación por monticulos o Heap Sort recorre el conjunto de elementos desde la posición de la mitad hasta la primera organizando el montículo correspondiete a dicho elemento. Una vez terminado este proceso, se inicia el proceso de ordenación ntercambiando el primer elemento por el último del arreglo y reorganizando el montículo a partir de la primera posición.
En el siguiente ejemplo si visualiza mejor el algoritmo de Heap Sort:

public static void ordenacion Monticulos (int[ ] v) {
.....final int N = v.length;
.....for (int nodo = N/2; nodo >=0; nodo--) hacerMonticulo (v, nodo, N-1);
.....for (int nodo = N-1; nodo >=0; nodo--) {
............int tmp = v[0];
............v[0] = v[nodo];
............v[nodo]= tmp;
............hacerMonticulo(v,0,nodo-1);
............}
...}

public static void hacerMonticulo (int [ ] v, int nodo, int fin) {
......int izq = 2*nodo 1;
......int der = izq 1;
......int may;
......if (izq>fin) return;
......if (der>fin) may=izq;
......else may = v[izq]>v [der]?izq:der;
......if (v[nodo] ..........int tmp = v[nodo];
...........v[nodo] = v[may];
...........v[may] = tmp;
..........hacerMonticulo (v,may, fin);
.........}
}

La complejidad del algoritmo de ordenación por montículos es O(n log n)teniendo en cuenta que el proceso de organizar el montículo en el peor caso solamente tiene que hacer intercambios sobre una sola línea de elementos desde la raíz del árbol hasta alguna de las hojas para un máximo de log n intercambios.

viernes, 19 de noviembre de 2010

Búsqueda Matríz

La búsqueda en matrices es parecida a la que se hace en vectores, la unica diferencia es que se usan 2 bucles en lugar de uno, ya que uno aplica a las filas y otro a las columnas.
El siguiente es el algoritmo de busqueda:

Declarar Matrices

Como su nombre lo indica, son aquellos que tinen dos dimensiones y, en consecuencia se maneja con dos índices:


  • Se puede ver tambien como un arreglo de arreglos.
  • Un arreglo bidimensional equivalente a una tabla con múltiples filas y columnas.



Al igual que los vectores, las matrices se declaran indicando nombre identificador, número de filas de columnas y tipo de datos que contiene.[ ]
 Por ejemplo:

  • Enteros M[3][5] declara una matriz llamada M de 3 filas y 5 columnas de enteros. 

M (1,1)M (1,2)M (1,3)M (1,4)M (1,5)
M (2,1)M (2,2)M (2,3)M (2,4)M (2,5)
M (3,1) M (3,2) M (3,3) M (3,4) M (3,5)

jueves, 18 de noviembre de 2010

Búsqueda Binaria

Es el método mas eficiente para encontrar elelmentos en un arreglo ordenado.El proceso comienza comparando el elemento central del arreglo con el valor buscado.Si ambos coinciden finaliza la búsqueda. Si no ocurre así, el elemento buscado será mayor o menor en sentido estricto que el central del arreglo. Si el elemento buscado es mayor se procede a hacer búsqueda binaria en el subarray superior, si el elemento buscado es menor que el contenido de la casilla central, se debe cambiar el segmento a considerar al segmento que está a la izquierda de tal sitio central.
Y su algoritmo es el siguiente:


El siguiente ejemplo explica de manera simple su funcionamiento:
Tenemos el arreglo: A= {1,3,4,2,5,6,12,43,21}  y queremos buscar el numero 12, entonces lo primero que se hace es comparar la casilla A(5) que en este caso vale 5 y como 5<>12 entonces entra a la siguiente condicion y compara 12>5 entonces entra al siguiente ciclo donde i vale 5 y compara A(5) y da que 5<>12 entonces i aumenta en 1 y ahora compara A(6) que vale 6 y da lo siguiente 6<>12 entonces i se incrementa en 1 y ahora vale 7 a lo que A(7) se compara y da que 12=12 por lo tanto el valor de la bandera cambia a verdadero y se interrumpe el ciclo y se llega a la condicion final donde se toma en cuenta el valor de la bandera y como en este caso es verdadero se muestra lo siguiente "12 hallado en posicion 7".

Búsqueda secuencial

Es la técnica más simple para buscar un elemento en un arreglo.Consiste en recorrer el arreglo elemento a elemento e ir comparando con el valor buscado (clave).Se empieza con la primer casilla del arreglo y se observa una casilla tras otra hasta que se encuentre el elemento buscado o se a vistotodas las casillas.El resultado de la búsqueda es solo un valor, y será la posición del elemento buscado o cero.Dado que el arreglo no ésta en ningún orden en particular, existe la misma probabilidad de que el valor se encuentra ya sea en el primer elemento, como el último. Por lo tanto, en promedio, el programa tendrá que el valor buscado con la mitad de los elementos del arreglo.
El método de busqueda lineal funciona bien con arreglos pequeños o para arreglos no ordenados. Si el arreglo está ordenado, se puede utlizar la tecnica de alta velocidad de búsqueda binaria, donde se reduce sucesivamente la operación eliminando repetidas veces la mitad de la lista restante.
Su algoritmo es el siguiente:


Por ejemplo si tenemos el siguiente vector: 
A = {23,21,34,54,89,92,89,72,12,7} 
Y queremos buscar el 54 en el arreglo, entonces lo que sucede es lo siguiente:
La bandera se inicia en falso y la i en 1, asi que se compara la casilla A[1] con el valor a buscar, pero como 23 <> 54 entonces la i se incrementa en 1 y ahora i vale 2 y se compara de nuevo pero ahora es la casilla A[2], pero 21<> 54 y la i vuelve a incrementar y ahora i vale 3 y se compara A[3] es decir 34 <> 54 y la i aumenta en 1 y vale 4 ahora se compara A[4] 54 = 54, entonces a la bandera se le asigna verdadero, esto hace que se interrumpa el ciclo y ahora sigue la siguiente condición, y como la bandera es verdadera se muestra lo siguiente "54 se encontro en posicion 4".



Ordenamiento por Insercíon

El fudamento 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 la posición de inserción tendremos distintas versiones del método de inserción.
por ejemplo: queremos insertar el número 6.

números[3/7/9/10/--/--]

La posición en la que deberá insertarse el 6 es la 2, por lo que los elementos 7,9,10; deberán recorrerse a la derecha, dejando la casilla 2 libre.

números[3/6/7/9/10/--]

El algoritmo de inserción es:

Ordenamiento por selección

Este metodo consiste en.encontrar el elemento más pequeño de la lista y colocarlo en la primera posición, luego se encuentra el segundo elemento más pequeño y se lleva a la segunda posición. Se continúa el proceso hasta llegar a la penúltima posición del vector.

Para obtener el elemento más pequeño se compara el primer valor con cada uno de los restantes y cada vez que se encuentra uno mas pequeño se intercambian los valores.