Si tienes la tabla ordenada desde
principio te ahorra muchos problemas. Otra cosa que te venga la tabla
rellena (o que el relleno no venga de ti). ¿como podemos ordenar una
tabla que ya este rellena?
Forma 2: Ordenar tablas despues de esar
rellenas.
Ordenar 8 numeros dados
Pseudocódigo:
<incio>
num=0
aux=0
t[8]={14,3,23,8,7,44,5,2}
mientras num<8
c=num+1
mientras c<(8)
si t[num]< T [c]
//este caso no nos sirve ahora
sino
aux =T[c]
T[c]=T[num]
T[num]=aux
finsi
c++
finmientras
num++
finmientras
....
<fin>
Ahora lo pasamos a C:
#include <stdio.h>
int main(int argc, char **argv)
{
int num=0;
int c=0;
int c2=0;
int aux=0;
int t[8]={14,3,23,8,7,44,5,2};
// lista de valores a ordenar
c=0;
printf(" Lista sin ordenar \n");
while (c<8) {
printf("%d ",t[c]);
c++;
}
// algoritmo de ordenacion
num=0;
while (num<8) {
c=num+1;
while (c<=(8)){
if (t[num]<t[c]) {
} else {
aux=t[c];
t[c]=t[num];
t[num]=aux;
}
c++;
}
c2=0;
printf("\n ordenando.... \n");
while (c2<8) {
printf("%d ",t[c2]);
c2++;
}
num++;
}
// mostrar el resultado ordenado
c=0;
printf("\n Lista ordenada \n");
while (c<8) {
printf("%d ",t[c]);
c++;
}
return 0;
}
int main(int argc, char **argv)
{
int num=0;
int c=0;
int c2=0;
int aux=0;
int t[8]={14,3,23,8,7,44,5,2};
// lista de valores a ordenar
c=0;
printf(" Lista sin ordenar \n");
while (c<8) {
printf("%d ",t[c]);
c++;
}
// algoritmo de ordenacion
num=0;
while (num<8) {
c=num+1;
while (c<=(8)){
if (t[num]<t[c]) {
} else {
aux=t[c];
t[c]=t[num];
t[num]=aux;
}
c++;
}
c2=0;
printf("\n ordenando.... \n");
while (c2<8) {
printf("%d ",t[c2]);
c2++;
}
num++;
}
// mostrar el resultado ordenado
c=0;
printf("\n Lista ordenada \n");
while (c<8) {
printf("%d ",t[c]);
c++;
}
return 0;
}
Resultado en pantalla:
Existen muchos métodos de ordenación más, el más eficiente es el QuickSort
vease en la wiki: http://es.wikipedia.org/wiki/Quicksort
No hay comentarios:
Publicar un comentario