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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


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

Desconectado Desconectado

Mensajes: 15



Ver Perfil
Ordenamientos Burbuja, Insercion y Shell en C++
« en: 25 Mayo 2011, 18:40 pm »

Código
  1. // Ordenamientos.cpp
  2. //Tipos de ordenamientos con enteros y caracteres utilizando memoria dinamica
  3. //By Norochii
  4. //Estructura de Datos
  5.  
  6. #include "stdafx.h"
  7. #include <iostream>
  8. #include <string>
  9. #include "time.h"
  10.  
  11. using namespace std;
  12.  
  13. class ordenamientos
  14. {
  15. private:
  16. int j,i,temp,x;
  17. int *listaEnteros;
  18. char *listaCaracteres;
  19. public:
  20. ordenamientos();
  21. ~ordenamientos();
  22. void ordenamientoBurbuja();
  23. void ordenamientoInsercion();
  24. void ordenamientoShell();
  25.  
  26. };
  27.  
  28. ordenamientos::ordenamientos()
  29. {
  30. i=0;
  31. j=0;
  32. temp=0;
  33. x=0;
  34. }
  35.  
  36. ordenamientos::~ordenamientos()
  37. {}
  38.  
  39. void ordenamientos::ordenamientoBurbuja()
  40. {
  41.  
  42. int opc;
  43. cout<<"                                 Metodo Burbuja "<<'\n'<<endl;
  44. cout<<"                               Que deseas Ordenar"<<endl;
  45. cout<<"                                   1.- Numeros"<<endl;
  46. cout<<"                                   2.- Letras"<<endl;
  47. cout<<"                                    Opcion: ";
  48. cin>>opc;
  49. system("cls");
  50. switch(opc)
  51. {
  52.  
  53. case 1:
  54. cout<<"                     Introduzca el numero de elementos a insertar "<<endl;
  55.  
  56. cout<<"                               Numeros de Elementos: ";
  57.  
  58. cin>>x;
  59.  
  60. listaEnteros= new(nothrow) int[x];
  61.  
  62. system("cls");
  63.  
  64. cout<<"Introduzca los elementos de la lista"<<endl;
  65.  
  66.  
  67. for(i=0; i<x; i++)
  68. {
  69.  
  70. cin>>listaEnteros[i];
  71. }
  72.  
  73. for(i=0;i<x-1;i++)
  74. {
  75.  
  76. for(j=i+1;j<x;j++)
  77. {
  78.  
  79. if(listaEnteros[i]>listaEnteros[j])
  80. {
  81. temp=listaEnteros[i];
  82.  
  83. listaEnteros[i]=listaEnteros[j];
  84.  
  85. listaEnteros[j]=temp;
  86. }
  87. }
  88.  
  89. }
  90.  
  91.  
  92. system("cls");
  93.  
  94. cout<<"Elementos Ordenados :"<<endl;
  95.  
  96. for(i=0; i<x; i++)
  97. {
  98.  
  99. cout<<endl;
  100.  
  101. cout<<"Elemento "<< i+1<<": " <<listaEnteros[i]<<endl;;
  102. }
  103.  
  104. delete[] listaEnteros;
  105.  
  106. break;
  107. case 2:
  108.  
  109. cout<<"            Introduzca el numero de elementos a insertar "<<endl;
  110.  
  111. cout<<"                    Numeros de Elementos: ";
  112.  
  113. cin>>x;
  114.  
  115. listaCaracteres= new(nothrow) char[x];
  116.  
  117. system("cls");
  118.  
  119. cout<<"Introduzca los elementos de la lista"<<endl;
  120.  
  121. for(i=0; i<x; i++)
  122. {
  123.  
  124. cin>>listaCaracteres[i];
  125. }
  126.  
  127. for(i=0;i<x-1;i++)
  128. {
  129.  
  130. for(j=i+1;j<x;j++)
  131. {
  132. if(listaCaracteres[i]>listaCaracteres[j])
  133. {
  134. temp=listaCaracteres[i];
  135.  
  136. listaCaracteres[i]=listaCaracteres[j];
  137.  
  138. listaCaracteres[j]=temp;
  139. }
  140. }
  141.  
  142. }
  143.  
  144.  
  145. system("cls");
  146.  
  147. cout<<"Elementos Ordenados :"<<endl;
  148.  
  149. for(i=0; i<x; i++)
  150. {
  151.  
  152. cout<<endl;
  153.  
  154. cout<<"Elemento "<< i+1<<": " <<listaCaracteres[i]<<endl;
  155. }
  156.  
  157. delete[] listaCaracteres;
  158.  
  159. break;
  160.  
  161. }
  162. }
  163.  
  164. void ordenamientos::ordenamientoInsercion()
  165. {
  166. int opc;
  167.  
  168. cout<<"                              Metodo Por Insercion "<<'\n'<<endl;
  169.  
  170. cout<<"                            Que deseas Ordenar"<<endl;
  171.  
  172. cout<<"                               1.- Numeros"<<endl;
  173.  
  174. cout<<"                               2.- Letras"<<endl;
  175.  
  176. cout<<"                                Opcion: ";
  177.  
  178. cin>>opc;
  179.  
  180. system("cls");
  181.  
  182. switch(opc)
  183. {
  184.  
  185. case 1:
  186.  
  187. cout<<"            Introduzca el numero de elementos a insertar "<<endl;
  188.  
  189. cout<<"                    Numeros de Elementos: ";
  190.  
  191. cin>>x;
  192.  
  193. listaEnteros= new(nothrow) int[x];
  194.  
  195. system("cls");
  196.  
  197. cout<<"Introduzca los elementos de la lista"<<endl;
  198.  
  199. for(i=0; i<x; i++)
  200. {
  201.  
  202. cin>>listaEnteros[i];
  203. }
  204.  
  205. for (i = 1; i < x; i++)
  206. {
  207.  
  208. temp = listaEnteros[i];
  209.  
  210. j = i - 1;
  211.  
  212. while ( (listaEnteros[j] > temp) && (j >= 0) )
  213. {
  214.  
  215. listaEnteros[j + 1] = listaEnteros[j];
  216.  
  217. j--;
  218.  
  219. listaEnteros[j + 1] = temp;
  220. }
  221.  
  222.  
  223. }
  224. system("cls");
  225.  
  226. cout<<"Elementos Ordenados :"<<endl;
  227.  
  228. for(j=0; j<x; j++)
  229. {
  230.  
  231. cout<<endl;
  232.  
  233. cout<<"Elemento "<< j+1<<": " <<listaEnteros[j]<<endl;;
  234. }
  235.  
  236. delete[] listaEnteros;
  237.  
  238. break;
  239.  
  240.  
  241. case 2:
  242.  
  243. cout<<"            Introduzca el numero de elementos a insertar "<<endl;
  244.  
  245. cout<<"                    Numeros de Elementos: ";
  246.  
  247. cin>>x;
  248.  
  249. listaCaracteres= new(nothrow) char[x];
  250.  
  251. system("cls");
  252.  
  253. cout<<"Introduzca los elementos de la lista"<<endl;
  254.  
  255. for(i=0; i<x; i++)
  256. {
  257.  
  258. cin>>listaCaracteres[i];
  259. }
  260.  
  261. for(i=0;i<x-1;i++)
  262. {
  263.  
  264. for(j=i+1;j<x;j++)
  265. {
  266.  
  267. if(listaCaracteres[i]>listaCaracteres[j])
  268. {
  269.  
  270. temp=listaCaracteres[i];
  271.  
  272. listaCaracteres[i]=listaCaracteres[j];
  273.  
  274. listaCaracteres[j]=temp;
  275.  
  276. }
  277.  
  278. }
  279.  
  280.  
  281. }
  282.  
  283.  
  284.  
  285. system("cls");
  286.  
  287. cout<<"Elementos Ordenados :"<<endl;
  288.  
  289. for(j=0; j<x; j++)
  290. {
  291.  
  292. cout<<endl;
  293.  
  294. cout<<"Elemento "<< j+1<<": " <<listaCaracteres[j]<<endl;;
  295. }
  296.  
  297. delete[] listaCaracteres;
  298. break;
  299.  
  300. }
  301. }
  302.  
  303. void ordenamientos::ordenamientoShell()
  304. {
  305. int inter,x,n=0,i=0,j=0,k=0,temp;
  306. int opc;
  307.  
  308.  
  309. cout<<"                              Metodo de Shell "<<'\n'<<endl;
  310.  
  311. cout<<"                            Que deseas Ordenar"<<endl;
  312.  
  313. cout<<"                               1.- Numeros"<<endl;
  314.  
  315. cout<<"                               2.- Letras"<<endl;
  316.  
  317. cout<<"                                Opcion: ";
  318.  
  319. cin>>opc;
  320.  
  321. system("cls");
  322.  
  323. switch(opc)
  324. {
  325. case 1:
  326.  
  327. cout<<"            Introduzca el numero de elementos a insertar "<<endl;
  328.  
  329. cout<<"                    Numeros de Elementos: ";
  330.  
  331. cin>>x;
  332.  
  333. inter = x/2;
  334.  
  335. listaEnteros= new(nothrow) int[x];
  336.  
  337. system("cls");
  338.  
  339. cout<<"Introduzca los elementos de la lista"<<endl;
  340.  
  341. for(i=0; i<x; i++)
  342. {
  343.  
  344. cin>>listaEnteros[i];
  345. }
  346.  
  347.  
  348. while(inter>0)
  349. {
  350.  
  351. for(i=inter;i<x;i++)
  352. {
  353.  
  354. n++;
  355.  
  356. j=i-inter;
  357.  
  358. while(j>=0)
  359. {
  360.  
  361. k=j+inter;
  362.  
  363. if(listaEnteros[j]<=listaEnteros[k])
  364. {
  365. j--;
  366. }
  367.  
  368. else
  369. {
  370.  
  371. temp=listaEnteros[j];
  372.  
  373. listaEnteros[j]=listaEnteros[k];
  374.  
  375. listaEnteros[k]=temp;
  376.  
  377. j=j-inter;
  378. }
  379.  
  380. }
  381.  
  382. }inter = inter/2;
  383. }
  384.  
  385.  
  386. system("cls");
  387.  
  388. cout<<"Elementos Ordenados :"<<endl;
  389.  
  390. for(j=0; j<x; j++)
  391. {
  392.  
  393. cout<<endl;
  394.  
  395. cout<<"Elemento "<< j+1<<": " <<listaEnteros[j]<<endl;;
  396.  
  397. }
  398.  
  399. delete[] listaEnteros;
  400.  
  401. break;
  402.  
  403. case 2:
  404.  
  405. cout<<"            Introduzca el numero de elementos a insertar "<<endl;
  406.  
  407. cout<<"                    Numeros de Elementos: ";
  408.  
  409. cin>>x;
  410.  
  411. inter = x/2;
  412.  
  413. listaCaracteres= new(nothrow) char[x];
  414.  
  415. system("cls");
  416.  
  417. cout<<"Introduzca los elementos de la lista"<<endl;
  418.  
  419. for(i=0; i<x; i++)
  420. {
  421.  
  422. cin>>listaCaracteres[i];
  423. }
  424.  
  425. while(inter>0)
  426. {
  427.  
  428. for(i=inter;i<x;i++)
  429. {
  430.  
  431. n++;
  432.  
  433. j=i-inter;
  434.  
  435. while(j>=0)
  436. {
  437.  
  438. k=j+inter;
  439.  
  440. if(listaCaracteres[j]<=listaCaracteres[k])
  441. {
  442. j--;
  443. }
  444.  
  445. else
  446. {
  447.  
  448. temp=listaCaracteres[j];
  449.  
  450. listaCaracteres[j]=listaCaracteres[k];
  451.  
  452. listaCaracteres[k]=temp;
  453.  
  454. j=j-inter;
  455. }
  456.  
  457. }
  458.  
  459. }inter = inter/2;
  460. }
  461.  
  462.  
  463. system("cls");
  464.  
  465. cout<<"Elementos Ordenados :"<<endl;
  466.  
  467. for(j=0; j<x; j++)
  468. {
  469.  
  470. cout<<endl;
  471.  
  472. cout<<"Elemento "<< j+1<<": " <<listaCaracteres[j]<<endl;;
  473.  
  474. }
  475.  
  476. delete[] listaCaracteres;
  477.  
  478. break;
  479.  
  480. }
  481. }
  482.  
  483. void  main()
  484. {
  485. int inicio,fin,tiempo,opcion;
  486. inicio=clock();
  487. ordenamientos O;
  488. cout<<" Selecciones el Metodo de Ordenamiento: "<<endl;
  489. cout<<'\n'<<"                                  1.- Metodo Burbuja "<<endl;
  490. cout<<"                                2.- Metodo de Insercion "<<endl;
  491. cout<<"                                 3.- Metodo de Shell "<<endl;
  492. cout<<"                                     Metodo Numero: ";
  493. cin>>opcion;
  494. system("cls");
  495. switch(opcion)
  496. {
  497. case 1:
  498. O.ordenamientoBurbuja();
  499. break;
  500. case 2:
  501. O.ordenamientoInsercion();
  502. break;
  503. case 3:
  504. O.ordenamientoShell();
  505. break;
  506.  
  507.        fin = clock();
  508. tiempo = fin-inicio;
  509. cout<<'\n'<<"Tiempo de Ejecucion: "<<tiempo<<" Milisegundos"<<endl;
  510. system("PAUSE");
  511.  
  512. }
  513. }
  514. Saludos Espero dejen sus comentarios :D
  515.  


En línea

Norochii
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
burbuja,insercion y seleccion
Programación C/C++
chaarlyyyy 4 9,677 Último mensaje 27 Mayo 2010, 02:57 am
por nicolas_cof
Insercion de exe
Programación Visual Basic
softinicio 7 3,059 Último mensaje 22 Septiembre 2010, 18:56 pm
por BlackZeroX
Algunos Tipos de Ordenamientos
Programación C/C++
Norochii 0 1,631 Último mensaje 25 Mayo 2011, 18:29 pm
por Norochii
ejemplo de ordenamientos básicos
Programación C/C++
david_BS 0 2,852 Último mensaje 2 Abril 2012, 02:30 am
por david_BS
Varios ejercicios de archivos/ordenamientos
Programación C/C++
proxiom 0 1,647 Último mensaje 20 Mayo 2015, 15:40 pm
por proxiom
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines