necesito un programa que ordene cualquier clase de elementos

ciro
19 de Agosto del 2004
necesito un programa por favor que ordene cualquier clase de elementos como datos interos, flotantes, arreglos, etc muchas gracias

xeroq
19 de Agosto del 2004
Bueno,con el QuickSort:

template <class T>
void QuickSort(T *array,int inicio,int final)
{
int Izq=inicio,Der=final;
T Med=array[(inicio+final)/2],Aux;

do
{
while (array[Izq]<Med) ++Izq;
while (array[Der]>Med) --Der;

if (Izq<=Der)
{
if (Izq<Der)
{
Aux=array[Izq];
array[Izq]=array[Der];
array[Der]=Aux;
}
++Izq;
--Der;
}

}while (Izq<=Der);

if (Izq<final)
QuickSort(array,Izq,final);
if (Der>inicio)
QuickSort(array,inicio,Der);
}

Ejemplo de uso:
int intArray[10]={5,7,6,23,4,100,4,1,200,1000};
QuickSort(array,0,9);

Alejandro_
19 de Agosto del 2004
También puedes usar la función sort() de la biblioteca estándar, que encuentras en <algorithm> y usa el algoritmo "introsort",

Un ejemplo:

#include <iostream>
#include <algorithm>
#include <iterator>

int main()
{
using namespace std;
// array desordenado:
int intArray[10]={5,7,6,23,4,100,4,1,200,1000};
// lo ordena en forma ascendente:
sort(intArray, intArray + 10);
// lo muestra:
copy(intArray, intArray + 10, ostream_iterator<int>(cout, " "));
// enter para salir:
cin.get();
return 0;
}

En esta versión, sort() recibe como parámetros dos iteradores de tipo "RandomAccessIterator", y usa la función "operator<" para las comparaciones. También tiene una segunda versión, que recibe como tercer parámetro una función objeto "comp".

Alejandro