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

19 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…

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>