INFORMATICA Y OCIO

Foros de informática
  Inicio    Normas    Buscar   Miembros   Clanes   Regístrese   Perfil   Conéctese para revisar sus mensajes   Conectarse 
[informatica] + [videos graciosos] + [ultimos mensajes] + [top usuarios] + [contacto]
Ordenar cadenas

 
Publicar Nuevo Tema   Responder al Tema    Índice del Foro Foroz comunity :: Programación
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
Maestro_kanelo
Forero
Forero


Registrado: 28 Oct 2005
Mensajes: 79

MensajePublicado: Lun May 15, 2006 9:32 am    Título del mensaje: Ordenar cadenas Responder citando
haber tengo que realizar un programa en ensamblador en el que le introduzca 20 cadenas por teclado y me las ordene tanto alfabeticamente como por longitud, la verdad consigo intercambiar 2 cadenas, ordenarlas, pero cuando son mas de 2 cadenas ya no se ke hacer, alguien sabe de algun sitio donde encontrar el codigo, alguna ayuda o algo???

Graciasssss
Volver arriba
Ver perfil del usuario Enviar mensaje privado
DonDavid
Moderador
Moderador


Registrado: 22 Abr 2004
Mensajes: 1272
Ubicación: Madrid

MensajePublicado: Lun May 15, 2006 9:53 am    Título del mensaje: Responder citando
Lo que te falla es el algoritmo... yo el codigo en ensalblador no te lo puedo poner... tienes que usar los algoritmos de ordenacion como el de la burbuja (el mas sencillo, pero menos eficiente), el de seleccion o insercion directa, o si quieres algo mas profesional (en cuanto a eficiencia) busca el heapSort o el QuickSort.

Todo eso son algoritmos de ordenacion, lo unico que tienes que hacer es buscarlo el psudo codigo y pasarlo a ensamblador.

Toma el de la burbuja por ejemplo: (Este codigo esta en C):

Código:

void mostrarArreglo(const int[], int);
//La usamos para desplegar los elementos del arreglo.
void ordenarArreglo(int[], int);
//Es el algoritmo de ordenamiento por burbuja

void intercambiar(int&, int&);
//Esta función es llamada por la función anterior, y se encarga de intercambiar los pares de elementos cuando sea necesario. Notar que recibe referencias ya que necesita modificar los valores de sus argumentos.


Ejemplo:




//Ordena burbuja, ordenamiento
//de un arreglo metodo burbuja
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
void mostrarArreglo(const int[], int); //prototipo de funcion que recibe un arreglo constante
void ordenarArreglo(int[], int); //prototipo que modifica y ordena elarreglo
void intercambiar(int&, int&); //prototipo, intercambialos valores de dos elementos
int main()
{
const int tamano = 15;
int arreglo[tamano] = {25,17,13,16,41,32,12,115,95,84,54,63,78,21,10};
cout << "Arreglo antes de ordenarse: " <<endl;
mostrarArreglo(arreglo,tamano);
cout << "Arreglo despues de ordenarse: " <<endl;
ordenarArreglo(arreglo,tamano);
mostrarArreglo(arreglo,tamano);
cout << "Fin del programa :)" << endl;
return 0;
}//fin de main

void mostrarArreglo(const int arreglo[], int tamano)
{
for (int i = 0 ; i < tamano ; i++)
cout << "arreglo["<< i << "]=" << arreglo[i]<< endl;
}
void ordenarArreglo(int arreglo[], int tamano)
{
for (int i = 0; i<tamano-1 ; i++)
for (int j = 0; j<tamano-1 ; j++)
if(arreglo[j] < arreglo[j+1])
intercambiar(arreglo[j],arreglo[j+1]);
}
void intercambiar(int &a, int &b)
{
int tmp = b;
b = a;
a = tmp;
}



Y un enlace que explica el uso del quicksort, el mas eficiente:
http://www.conclase.net/c/orden/quicksort.html

A mi el que mas me gusta es el heapsort o del monticulo, por el uso de arboles y recursividad, pero no se suele encontrar demasiada informacion de el... lo mejor es buscar en un libro de programacion. Ademas de que estos dos ultimos... no se si te servirar.. o mereceran la pena para ordenar tan solo 20 cadenas.
_________________
La mayor sabiduría que existe es conocerse a uno mismo.
Te conoces tu??


Volver arriba
Ver perfil del usuario Enviar mensaje privado
memorex
Conociendo Foroz
Conociendo Foroz


Registrado: 25 May 2006
Mensajes: 16

MensajePublicado: Jue May 25, 2006 2:34 am    Título del mensaje: Responder citando
Para que tipo de ensamblador lo buscas¿?¿? 8086, 68000
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Mostrar mensajes anteriores:   
Publicar Nuevo Tema   Responder al Tema    Índice del Foro Foroz comunity :: Programación Todas las horas están en GMT + 1 Hora
Página 1 de 1
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
 
Articulos relacionados
En Sugerencias-comentarios >> Ordenar los post-juegos de Off-topics...
En Sugerencias-comentarios >> Ordenar los temas por temática en la ...
En Programación >> Problema con cadenas. En lenguaje C
En Sistemas Operativos >> Ordenar el arranque del XP
En Programación >> Bash Linux Script (Ordenar alfabética...
 

 
Foroz comunity Tema RSS 




by phpBB  
informatica Videos graciosos webmasters theme by Scott Stubblefield Top foroz