Você está na página 1de 3

Algoritmo Selección

En este tipo de algoritmos se SELECCIONA o se busca el elemento más


pequeño (o más grande) de todo el conjunto de elementos y se coloca en su
posición adecuada. Este proceso se repite para el resto de los elementos hasta
que todos son analizados.

Ejemplo.

ORIGINAL : | 8 | 4 | 1 | 0 |
PROCESO DEL ORDENAMIENTO
orden de ciclo : | 0 | 4 | 1 | 8 |
orden de ciclo : | 0 | 1 | 4 | 8 |
orden de ciclo : | 0 | 1 | 4 | 8 |
ORDENADO : | 0 | 1 | 4 | 8 |

Código fuente.

CLASE SELECCIÓN

public class seleccion {


private int[] vector;
private int elementos;

public seleccion (){}

public int[] ordenar(int[] v){


this.vector=v;
elementos = vector.length;
//se toma como valor mayor el ultimo elemento del vector
"n-1"
int mayor = vector[elementos-1];
int pos = elementos-1;
int aux;
//se repite el ciclo hasta que quede un solo elemento
while(elementos > 1) {
//se recorre todos los elementos del vector
for(int i=0; i<elementos;i++){
//se busca el elemento mayor
if(vector[i]>mayor){
mayor = vector[i];
pos = i;
}
}
// se intercambian valores, el valor mayor encontrado
se hubica en
// la ultima posicion del vector
aux = vector[elementos-1];
vector[elementos-1] = mayor;
vector[pos] = aux;
System.out.println("orden de ciclo : "+
Mostrar(vector));
//se resta en uno la cantidad de elementos
elementos--;
//se toma como valor mayor el ultimo elemento del
vector
mayor = vector[elementos-1];
pos = elementos-1;
}
return vector;
}

//para imprimir el array de la forma | 0 | 1 | 2 | 3 | 4 |


public String Mostrar(int[] v){
String s=" | ";
for (int i=0; i < v.length; i++){
s += v[i] + " | ";
}
return s;
}
}

CLASE MAIN

import java.util.Random;

public class Main {

public static void main(String[] args) {


//creamos un array y llenamos este con numeros al azar
int[] c = null ;
c = generarlista(10);
seleccion s = new seleccion();
System.out.println("ALGORITMO DE SELECCION ------
COMPLEJIDAD COMPUTACIONAL");
System.out.println("ORIGINAL : "+ s.Mostrar(c));
System.out.println("PROCESO DEL ORDENAMIENTO");
System.out.println("ORDENADO : "+ s.Mostrar(s.ordenar(c)));

//genera un array de n elementos enteros


public static int[] generarlista(int n){
int[] v = new int[n];
Random rand = new Random();
for (int i=0; i<v.length; i++){
v[i]=rand.nextInt(10);
}
return v;
NOMBRE DEL TRABAJO

PRESENTADO POR:
JUAN RAFAEL VAREALA AMADOR

PRESENTADO A:
ING. FERNANDO TOBAR

COMO REQUISITO EN EL AREA:


COMPLEJIDAD COMPUTACIONAL

UNIVERSIDAD LA GRAN COLOMBIA


Programa de ingeniera de sistemas
V semestre
ARMENIA, QUINDIO
ABRIL 15 DE 2011

Você também pode gostar