elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C] Ordenamiento de datos en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C] Ordenamiento de datos en C  (Leído 3,669 veces)
valen7valverde

Desconectado Desconectado

Mensajes: 35



Ver Perfil
[C] Ordenamiento de datos en C
« en: 10 Mayo 2020, 00:35 am »

Hola, compañerxs.

Necesito ordenar unos datos dentro de un array de integer, de menor a mayor. Estoy usando el método burbuja pero el array es de 10⁶ de longitud, por lo que es super ineficiente. ¿Me recomendáis algun buen método para hacer de forma eficiente?

Dejo el código que estoy usando por aquí.
Gracias de antemano.

Código
  1.  
  2. void sortData(int *x, int length)
  3. {
  4.    printf("Empieza metodo burbuja\n");
  5.  
  6.    for (int j = 1; j < length; j++)
  7.    {
  8.        for (int i = 0; i < length - 1; i++)
  9.        {
  10.            int aux;
  11.            if (x[i] > x[i + 1])
  12.            {
  13.                aux = x[i];
  14.                x[i] = x[i + 1];
  15.                x[i + 1] = aux;
  16.            }
  17.        }
  18.    }
  19.  
  20.    printf("Acaba metodo burbuja\n");
  21. }
  22.  
  23.  


En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: [C] Ordenamiento de datos en C
« Respuesta #1 en: 10 Mayo 2020, 00:46 am »

Los algoritmos de ordenación más básicos son: Burbuja, Inserción y Selección. Los tres tienen un orden de eficiencia O(n2) pero son fáciles de implementar.
Si quieres algo más eficiente busca el algoritmo Quicksort o Mergesort (entre otros).


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
valen7valverde

Desconectado Desconectado

Mensajes: 35



Ver Perfil
Re: [C] Ordenamiento de datos en C
« Respuesta #2 en: 11 Mayo 2020, 00:19 am »

Gracias por la respuesta, YreX-DwX.

Sí, finalmente usé qsort. Quería implementarlo manualmente debido a que es un trabajo de la universidad, pero finalmente decidí usar el que viene en la librería y no complicarme demasiado.

Dejo el código en git-hub por aquí por si queréis echarle un vistazo y comentarme los fallos que tiene.

Saludos!

https://github.com/valen-developer/cobalt-decay-poisson-distribution/blob/master/ejer1.c
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Metodos de Ordenamiento en c#
.NET (C#, VB.NET, ASP)
alexvem 0 39,106 Último mensaje 4 Agosto 2008, 18:02 pm
por alexvem
Metodos de Ordenamiento
Programación Visual Basic
...:::Téotl:::... 4 13,841 Último mensaje 15 Junio 2012, 22:55 pm
por raul338
Duda sobre ordenamiento de datos en Database
Bases de Datos
Skeletron 8 5,651 Último mensaje 16 Febrero 2010, 19:44 pm
por ^Tifa^
[?]Ordenamiento de datos en un archivo
Programación C/C++
.:BlackCoder:. 1 4,883 Último mensaje 26 Julio 2010, 07:37 am
por do-while
Ayuda! Validacion de Datos en Ordenamiento.
Programación C/C++
BKsiragon 9 3,456 Último mensaje 2 Febrero 2013, 21:30 pm
por leosansan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines