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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Para entender el algoritmo de inserción
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Para entender el algoritmo de inserción  (Leído 1,357 veces)
Yoel Alejandro

Desconectado Desconectado

Mensajes: 254



Ver Perfil WWW
Para entender el algoritmo de inserción
« en: 4 Marzo 2014, 19:02 pm »

En esta ocasión quiero compartir un programita divertido que muestra de manera interactiva la ejecución del algoritmo de ordenamiento por inserción. Básicamente va ordenando el arreglo e indicando por pantalla lo que va haciendo: cómo se mueven los elementos y cómo va quedando el vector tras cada paso ....

Un programita amigable y con un propósito bien didáctivo .... enjoy it!!

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define N 5
  5.  
  6. int main(void) {
  7.  
  8. int x[N] = {7, 3, 11, 5, 1};
  9. int i, j, k;
  10. int aux;
  11.  
  12. printf("Arreglo original: \n");
  13. for (k = 0; k < N; k++)
  14. printf(" %d", x[k]);
  15. printf("\n");
  16.  
  17. for (i = 1; i < N; i++) {
  18.  
  19. /* buscamos desde 0 hasta i - 1, el primer elemento que sea
  20. * mayor que x[i] */
  21. printf("ubicando %d ...", x[i]);
  22. j = 0;
  23. while (j < i && x[j] <= x[i])
  24. j++;
  25.  
  26. if ( j < i ) {
  27.  
  28. /* insertar x[i] en la posición j, y desplazar los
  29. * restantes elementos hacia la derecha */
  30. printf(" poner en posicion %d\n", j);
  31.  
  32. for (k = 0; k < N; k++)
  33. printf(" %d", x[k]);
  34. printf("  -> ");
  35.  
  36. aux = x[i];
  37. for (k = i; k > j; k--)
  38. x[k] = x[k-1];
  39. x[j] = aux;
  40.  
  41. for (k = 0; k < N; k++)
  42. printf(" %d", x[k]);
  43. printf("\n");
  44. }
  45. else
  46. printf(" sin cambios\n");
  47. }
  48. printf("El arreglo final ordenado es:\n");
  49. for (i = 0; i < N; i++)
  50. printf(" %d", x[i]);
  51. printf("\n");
  52.  
  53. return 0;
  54. }


En línea

Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda para entender netbeans
Java
Electronik 3 5,888 Último mensaje 15 Octubre 2009, 00:01 am
por Electronik
instalacion de un OS para entender el bug IIS
Hacking
b10s_0v3rr1d3 0 2,411 Último mensaje 16 Diciembre 2009, 01:04 am
por b10s_0v3rr1d3
ayuda con codigo para entender
Ingeniería Inversa
DragonsWP 1 2,566 Último mensaje 31 Diciembre 2009, 09:47 am
por MCKSys Argentina
ayuda para entender código en c++
Programación C/C++
migcv 5 3,805 Último mensaje 8 Noviembre 2012, 15:38 pm
por rir3760
Cuatro claves para entender el Facebook actual: móvil y menos atractivo para ...
Noticias
wolfbcn 0 1,283 Último mensaje 31 Octubre 2013, 14:55 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines