Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* AUTOR: d3n3k4 (Dnk!)
- * FECHA: 06/DIC/2010
- * DESCRIPCION:
- - Clase con distintos metodos de ordenacion, inserccion directa, seleccion
- directa,burbuja y bublesort,shellsort.
- * NOTA: Este codigo es libre y puede ser usado,modificado... siempre y cuando se
- * mantenga los creditos y comentarios del autor.
- */
- public class algoritmosOrdenacion {
- /*
- * Ordenamiento Simple por Insercion directa.
- */
- public static int[] insercionDirecta(int[] vDesordenado) {
- int temp,k;
- for (int i = 1; i < vDesordenado.length;i++) {
- temp = vDesordenado[i];
- k = i - 1;
- while (k >= 0 && vDesordenado[k] > temp) {
- vDesordenado[k+1] = vDesordenado[k];
- k--;
- }
- vDesordenado[k+1] = temp;
- }
- return vDesordenado;
- }
- /*
- * Ordenamiento Simple por Seleccion directa.
- */
- public static int[] seleccionDirecta(int[] vDesordenado) {
- int i,temp;
- for (int k = 0; k < vDesordenado.length - 1;k++) {
- i = k;
- temp = vDesordenado[k];
- for (int j = k + 1; j < vDesordenado.length; j++) {
- if (vDesordenado[j] < temp) {
- i = j;
- temp = vDesordenado[i];
- }
- }
- vDesordenado[i] = vDesordenado[k];
- vDesordenado[k] = temp;
- }
- return vDesordenado;
- }
- /*
- * Ordenamiento por intercambio directo (Burbuja).
- */
- public static int[] intercambioDirecto(int[] vDesordenado) {
- int temp;
- for (int i = 1; i < vDesordenado.length; i++) {
- for (int j = vDesordenado.length - 1; j >= i ; j--) {
- if (vDesordenado[j] < vDesordenado[j-1]) {
- temp = vDesordenado[j];
- vDesordenado[j] = vDesordenado[j-1];
- vDesordenado[j-1] = temp;
- }
- }
- }
- return vDesordenado;
- }
- /*
- * Ordenamiento por burbuja optimizado (Bublesort).
- */
- public static int[] intercambioDirectoOptimizado(int[] vDesordenado) {
- int temp;
- for (int i = 0; i < vDesordenado.length; i++) {
- for (int j = 0; j < i ; j++) {
- if (vDesordenado[i] < vDesordenado[j]) {
- temp = vDesordenado[j];
- vDesordenado[j] = vDesordenado[i];
- vDesordenado[i] = temp;
- }
- }
- }
- return vDesordenado;
- }
- /*
- * Ordenamiento por mezcla, optimizado de inserccion directa.
- */
- public static int[] shellSort(int[] vDes) {
- for ( int increment = vDes.length / 2; increment > 0; increment = (increment == 2 ? 1 : (int) Math.round(increment / 2.2))) {
- for (int i = increment; i < vDes.length; i++) {
- for (int j = i; j >= increment && vDes[j - increment] > vDes[j]; j -= increment) {
- int temp = vDes[j];
- vDes[j] = vDes[j - increment];
- vDes[j - increment] = temp;
- }
- }
- }
- return vDes;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement