¿estructura de datos y algoritmos, con PseInt ? Se supone que es una materia que se dicta al final de la carrera, no al principio.
El algoritmo de ordenación básicos, son los algoritmos de ordenación por comparación, los cuales se trata de una serie de comparaciones para determinar "fallas en el orden" llamadas inversiones. Un arreglo ordenado es aquel que no presenta inversiones.
Tienes que liberar la mente, los primeros algoritmos no serán fáciles. Tienes que jugar con objetos como un crío y ordenar tu mismo siguiendo las reglas que gobiernan al algoritmo de selección (no hay otro camino didáctico).
En la parte delimitada en el C:
if (i != indiceMenor)
{
double aux = a;
a = a[indiceMenor];
a[indiceMenor] = aux ;
}
El arreglo a, contiene los números, en principio desordenados.
El cuarpo del if es en donde se realiza el intercambio.
La precondicion que te debes imaginar en que el instante en que entre , las pociciones anteriores a i desde cero a i-1, ya es un arreglo ordenado.
indiceMenor, esta apuntando a un numero mayor o igual al del indice i-1, pero es menor o igual al restante pedazo del arreglo.
Ese if se podría sacar, puesto que el intercambio con sigo mismo no daria algún efecto negativo.
PseInt, se parece a pascalFC.
El algoritmo de Pseint esta mal, pues empiezas a ordenar los elementos antes de terminar de definir los números del arreglo.
Proceso sin_titulo
Definir lista Como Entero;
Definir num_azar, indiceMenor, aux Como Entero;
Definir i, j Como Entero;
Dimension lista[5];
Para i<-0 Hasta 4 Con Paso 1 Hacer
num_azar = azar(10)+1; // genero numeros al azar del 1 a 10
lista = num_azar; // llevo esos numeros al arreglo
FinPara
Para i<-0 Hasta 4 Con Paso 1 Hacer
indiceMenor = i; // ahora i que es el indice 0 pasara a esa var
Para j<-i+1 Hasta 4 Con Paso 1 Hacer
Si lista[j]<lista[indiceMenor] Entonces
indiceMenor = lista[j];
FinSi
Si i<>indiceMenor Entonces
aux = lista;
lista = lista[indiceMenor];
lista[indiceMenor] = aux;
FinSi
FinPara
FinPara
Para i<-0 Hasta 4 Con Paso 1 Hacer
//tienes que imprimir lista, que es un arreglo con los numeros ordenados
imprimir lista
FinPara
FinProceso
PD: Para más información de ordenación, Puedes echar un vistazo al Capitulo 3 mi cuaderno donde trato la ordenación, en la sección nuevos cuadernos.[/i]