Métodos de ordenamiento hecho en C++

6 01 2008

Acabo de encontrar los codigos que habia escrito en C++, sobre 6 tipos de ordenamiento, les servirá para algo.

Método shell: Ordenamiento Shell.txt
Método quick sort: Ordenamiento por método Quick Sort.txt
Método Inserción Directa: Ordenamiento por inserción Directa.txt
Método Inserción Binaria: Ordenamiento por inserción Binaria.txt
Método Heap sort: Ordenamiento por Heap Sort.txt
Método de Selección: Ordenamiento método Seleción.txt

Esta es la librería que los 6 codigos anteriores lo utilizan: leearreglo.h

Nota:

Pueden visitar el siguiente grupo, en el repositorio encontrarás varios códigos sencillos que he podido realizar y he decidido compartir con todos uds.

También pueden subscribirse al grupo, y así les llegará inmediatamente a sus correos los códigos que se van subiendo, Uds pueden colaborar subiendo al repositorio sus propios códigos. Esta es una manera eficiente de compartir.

Somos Código Libre - C++
Consultar este grupo

También te puede Interesar:

Métodos de Ordenamiento en java


Acciones

Información

25 respuestas a “Métodos de ordenamiento hecho en C++”

9 04 2008
roberto (17:27:29) :

no m korre ningun programa k puedo hacer

9 04 2008
sAfOrAs (22:09:59) :

como estás …
primeramente, no se con k compilador estás usando, en linux yo use g++
para compilar solo debes copiar el archivo a algun editor y guardarlo con extensión cpp.
luego compilar con:
$ g++ nombre_del_archivo.cpp -o nombre_del_archivo
para ejecutar:

$ ./nombre_del_archivo

suerte :)

20 05 2008
alexandro (21:29:09) :

epa man solo tengo una preguna que para que es esta sentencia #include”leearreglo.h”

20 05 2008
sAfOrAs (22:31:35) :

ok alexandro, el #include “leearreglo.h”, es una libreria que es invocada desde los programas realizados, más específicamente, son llamados desde todas las funciones de ordenamiento que hice, excepto desde heap sort. Presenta solo 2 procedimientos:
void leeCadena(int cant,int n[]) //pide el ingreso de numeros, dependiendo de la cantidad (int cant) mandada, y se almacena en el arreglo n[]

void muestraCadena(int cant,int n[]) // muestra todos los elementos del arreglo.

Si no incluyes esta libreria que adjunté al final de los 6 codigos de ordenamiento, los programas no correrán, exceptuando el heap sort que no necesita de esta libreria, pues debes tenerlo en el mismo proyecto si trabajas con algún IDE, o en la misma carpeta si compilas y ejecutas directamente.
saludos!!

4 06 2008
n (16:23:16) :

bobo

4 06 2008
Hector (19:20:43) :

para que sirve el using namespace std es que cuando lo compilo en el borland 5.01 me dice que hay error ahi.

4 06 2008
Hector (19:42:27) :

es un ordenamiento este es el codigo :

//Quick Sort
#include
#define largo 100
#include”leearreglo.h”
using namespace std;
void quicksort(int A[],int izq, int der )
{
int i, j, x , aux;
i = izq;
j = der;
x = A[ (izq + der) /2 ];
do{
while( (A[i] < x) && (j <= der) )
{
i++;
}

while( (x izq) )
{
j–;
}

if( i <= j )
{
aux = A[i]; A[i] = A[j]; A[j] = aux;
i++; j–;
}

}while( i <= j );

if( izq < j )
quicksort( A, izq, j );
if( i < der )
quicksort( A, i, der );
}

void main ()
{
int A[largo],n;
do{
cout<>n;
if(nlargo)
cout< a 0 y < a “<<largo<<endl;
}while(nlargo);
leeCadena(n,A);
quicksort(A,0,n-1);
muestraCadena(n,A);

}

9 06 2008
made (14:37:31) :

no entendi nada xD
kuak!

9 06 2008
sAfOrAs (15:52:12) :

va a dar error si no incluyes la la libreria leearreglo.h, y el using namespace std; se usa para poder utilizar el cin>> el cout<< y el endl; en el código.

10 06 2008
yovana (12:59:33) :

hola una pregunta mira yo estoy utilizando la sodificación de ordenamiento shell y me sale dos errores una es en esta :
leeCadena(n,A);
y la otra en esta:
muestraCadena(n,A);
estoy utilizando el lenguaje dev-C++
espero tu respuesta………………….

10 06 2008
sAfOrAs (13:55:00) :

como vas yovana, ….
dev-C++, ese solo es una IDE, que ayuda a programar y compilar en C++, pero el lenguaje es solo “c++”:) bueno, el código que mencionas, el shell, lo compilé con g++, no he tenido ningún problema, pero ahora que lo dices lo he hecho con dev-C++, .
Lo primero que hice es crear un nuevo source desde el menu archivo(file):

file - new - source file

ahí copie el código shell.
al momento de compilar te pedirá que le pongas un nombre, si antes ya no lo habías hecho, puedes ponerlo por ejemplo shell.cpp, el nombre puede ser cualquiera, pero siempre al final un .cpp
-compilé, y efectivamente sale el error que tu mencionas.
ese error es porque muestraCadena y leeCadena están incluidos en la librería leearreglo.h, al cual invocamos en el comienzo del código, pero no lo encuentra, ya que no lo puse en el mismo proyecto.

Por lo tanto ahora hacemos otra vez file - new - source file
copiamos el còdigo de leearreglo.h
lo compilamos, y cuando nos pide un nombre, lo ponemos exactamente como este: leearreglo.h esto es muy importante, ya que es el nombre que invocamos en el código, el .h indica que es solo una librería, o sea no se le podrá ejecutar solo, ya que no tiene un main() en su código.

Ahora compilamos, y todavía habrá un error más, lo que pasa es que cuando yo compile con g++ no me votó ese error, o no lo consideró como error.
pero en dev-C++ debemos cambiar el tipo de dato de retorno void del ‘main()’ con un int, y darle un valor de retorno de 0.

int main ( )
{

.
.
.

return 0;
}

el main debe quedar como ese.
ahora sí, volvemos a compilar y todo ok!
es seguro que en los demás códigos también se encuentre ese problema, pues dev-C++, no acepta en el main un valor void, o eso es lo que parece!!!
saludos….

11 06 2008
yovana (16:48:08) :

hola sabes ya me corrio el programa pero se supone que tiene q ordenarlo y mostrarlo pero no muestra nada

12 06 2008
sAfOrAs (00:14:54) :

Buena observación!!!
Lo cierto es que no he usado en muchas ocasiones Dev C++, pero seguro te sucede lo que me sucedió cuando use esta IDE por primera vez.
Lo que pasa es que Dev-C++ no soporta la dichosa generación automática de pausas, por lo que cuando ejecutas el programa, te pide que ingreses los datos, pero no puedes ver los resultados porque la ventana se cierra inmediatamente.

para que soluciones este problema basta con hacer lo siguiente:

int main ( )
{
.
.
.

system(”pause”); //código que debes aumentar
return 0;
}

con ese system(”pause”); antes del return 0 seguro que no tendrán problemas en ningún código!!!
Era eso lo que te sucedía??? bye!!

12 06 2008
Métodos de ordenamiento hecho en java « Saforas’$ the::beastieux (14:51:32) :

[...] Métodos de Ordenamiento en C++ [...]

14 06 2008
ozzy (14:29:51) :

hola alguien que me ayude, nesecito un compilador que haga lo mas basico como reconocer unas cuantas sentencias, hecho en c++, urge muchisimo

17 06 2008
Soy Chany (21:52:49) :

yo sòlo necesito hacer un ejercicio de cada ordenamiento: shell, arbol, burbuja y quick sort, la verdad, es que no entiendo mucho. Cual es LA PÁGINA MÁS FACIL DE ENTENDER???, GRACIAS.

18 06 2008
sAfOrAs (12:03:17) :

vale Chany, entonces esto te podría ayudar a comprender, aunque el código es prácticamente lo mismo.

Ordenamiento en C++

solo incluyo la explicación del algoritmo de cada método.
saludos…

28 06 2008
Penelope (20:31:59) :

El HeapSort No ordena correctamente, cual es la solucion

30 06 2008
sAfOrAs (03:33:07) :

O_O, Hola Penelope, la verdad que no he notado error en el método, podrías decirme cuales son los datos que ingresas?
Ten en cuenta que el primer valor ingresado es la cantidad de numeros que ingresarás, luego de eso tienes que ingresar los n numeros que pusiste en un inicio.

puedes sustituir estas lineas :

for(i=1;i<=n;i++)
cin >> A[i];

por estas:

for(i=1;i<=n;i++)
{
cout<<”Ingrese el elemento “<<i<<” : “;
cin >> A[i];
}

para hacer más comprensible el proceso.
saludos…

29 07 2008
Ronald Mieles (15:37:47) :

Muchas gracias Yovana y a quien te ayudo que no se como se llama, me sirvio de mucho todo lo que pusieron ya que como lo especifican lo pude ejecutar, he aprendido con usted mucho y saque una buena nota en un exposion de este tema.

Saludos

Ronald

29 07 2008
sAfOrAs (16:34:15) :

hey, que tal Ronald, felicitaciones por la buena nota, regresa pronto!!!

2 08 2008
leonidas (23:04:13) :

wenas!! me parece muy wena tu iniciativa de este blog, tipo foro que ayudas a los demas a comprender mejor la algoritmia... ahora mas alla de problemas con las metodologias de ordenamiento, quisiera saber que aplicacion tendria un ordenamiento en lenguajes orientados a la web, como paginas o algun tema relacionado a eso... agradeceria tu respuesta y conocer algo mas acerca de la implementacion de estos...

3 08 2008
sAfOrAs (00:13:36) :

muy buena pregunta leonidas…
verás, la utilización de los diversos métodos de ordenamiento en el lenguaje que sea, se hace dependiendo de su uso, por ejemplo, hay métodos que funcionan mejor en ciertos casos y que son un drama en otros.
En cuanto a su aplicación, en el mundo de la web es muy importante como en cualquier aplicación que se vincula con cierta base de datos, por ejemplo, google u otros buscadores se encargan de ordenar sus resultados teniendo en cuenta la importancia de la web, en relación con su número de vínculos entrantes, salientes,etc;es decir, cuantifica su relevancia.

Los pagerank’s también tienen que usar métodos de ordenamientos para listar ordenadamente las webs con más valoración desde diversas perspectivas.

En el caso de los web/blogs, hay quienes mustran las entradas más vistas, como en éste, lo hacen ordenadamente según el resultado del análisis de la cantidad de visitas que tiene cada post.

Por lo tanto, es común que usemos métodos de ordenamiento como una herramienta más de los métodos de búsqueda.

Casi todas las webs cuentan con un motor de base de datos, por el cual es necesario contar con métodos de búsquedas para localizar información y métodos de ordenamiento para mostrarlos.

Espero haberte dado algo de luces en este aspecto, te invito a buscar mas info en la web que este tema es sumamente importante.
Saludos.

3 08 2008
leonidas (16:33:41) :

si de todas formas… muchas gracias… saludos!

4 09 2008
alex_xela (22:15:20) :

buenas pues yo tambien felicito a saforas por muy buen foro de verdad que esto hace falta para mucho mas temas yo tambien estoy con el tema de leonidas sobre en donde se puede utilizar los metodos de ordenamiento y la diferencia de utilizar uno y otro muchas gracias y sigue adelante

Deja un comentario

Puedes usar estas etiquetas : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>