necesito un programa que ordene cualquier clase de elementos
necesito un programa por favor que ordene cualquier clase de elementos como datos interos, flotantes, arreglos, etc muchas gracias
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);
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);
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
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
