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


 


Tema destacado: Java [Guía] Patrones de diseño - Parte 1


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, YreX-DwX)
| | |-+  [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 460 veces)
valen7valverde

Desconectado Desconectado

Mensajes: 35



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

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

YreX-DwX
Moderador
***
Desconectado Desconectado

Mensajes: 702



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

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 »

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
Duda sobre ordenamiento de datos en Database
Bases de Datos
Skeletron 8 4,104 Último mensaje 16 Febrero 2010, 19:44
por ^Tifa^
[?]Ordenamiento de datos en un archivo
Programación C/C++
.:BlackCoder:. 1 3,225 Último mensaje 26 Julio 2010, 07:37
por do-while
METODOS DE ORDENAMIENTO
Programación C/C++
ANTÓN RAMIREZ 1 12,170 Último mensaje 12 Diciembre 2010, 12:53
por Garfield07
Ordenamiento estructuras
Programación C/C++
programacion_c 5 1,788 Último mensaje 31 Mayo 2012, 20:05
por programacion_c
Ayuda! Validacion de Datos en Ordenamiento.
Programación C/C++
BKsiragon 9 1,557 Último mensaje 2 Febrero 2013, 21:30
por leosansan
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines