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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


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

Desconectado Desconectado

Mensajes: 15



Ver Perfil
Algunos Tipos de Ordenamientos
« en: 25 Mayo 2011, 18:29 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. #include <math.h>
  11. #define NUMELTS 20
  12.  
  13. using namespace std;
  14.  
  15. class ordenamientos
  16. {
  17. private:
  18. int j,i,temp,x;
  19. int *listaEnteros;
  20. char *listaCaracteres;
  21. public:
  22. ordenamientos();
  23. ~ordenamientos();
  24. void ordenamientoBurbuja();
  25. void ordenamientoInsercion();
  26. void ordenamientoShell();
  27.  
  28.  
  29. };
  30.  
  31. ordenamientos::ordenamientos()
  32. {
  33. i=0;
  34. j=0;
  35. temp=0;
  36. x=0;
  37. }
  38.  
  39. ordenamientos::~ordenamientos()
  40. {}
  41.  
  42. void ordenamientos::ordenamientoBurbuja()
  43. {
  44. int opc;
  45. cout<<"                                 Metodo Burbuja "<<'\n'<<endl;
  46. cout<<"                               Que deseas Ordenar"<<endl;
  47. cout<<"                                   1.- Numeros"<<endl;
  48. cout<<"                                   2.- Letras"<<endl;
  49. cout<<"                                    Opcion: ";
  50. cin>>opc;
  51. system("cls");
  52. switch(opc)
  53. {
  54.  
  55. case 1:
  56. cout<<"Introduzca el numero de elementos a insertar "<<endl;
  57. cout<<"Numeros de Elementos: ";
  58. cin>>x;
  59. listaEnteros= new(nothrow) int[x];
  60. system("cls");
  61. cout<<"Introduzca los elementos de la lista"<<endl;
  62. for(i=0; i<x; i++)
  63. {
  64. cin>>listaEnteros[i];
  65. }
  66. for(i=0;i<x-1;i++)
  67. {
  68. for(j=i+1;j<x;j++)
  69. {
  70. if(listaEnteros[i]>listaEnteros[j])
  71. {
  72. temp=listaEnteros[i];
  73. listaEnteros[i]=listaEnteros[j];
  74. listaEnteros[j]=temp;
  75. }
  76. }
  77.  
  78. }
  79. system("cls");
  80. cout<<"Elementos Ordenados :"<<endl;
  81. for(i=0; i<x; i++)
  82. {
  83. cout<<endl;
  84. cout<<"Elemento "<< i+1<<": " <<listaEnteros[i]<<endl;
  85. }
  86. delete[] listaEnteros;
  87. break;
  88. case 2:
  89.  
  90. cout<<"Introduzca el numero de elementos a insertar "<<endl;
  91. cout<<" Numeros de Elementos: ";
  92. cin>>x;
  93. listaCaracteres= new(nothrow) char[x];
  94. system("cls");
  95. cout<<"Introduzca los elementos de la lista"<<endl;
  96. for(i=0; i<x; i++)
  97. {
  98. cin>>listaCaracteres[i];
  99. }
  100. for(i=0;i<x-1;i++)
  101. {
  102. for(j=i+1;j<x;j++)
  103. {
  104. if(listaCaracteres[i]>listaCaracteres[j])
  105. {
  106. temp=listaCaracteres[i];
  107. listaCaracteres[i]=listaCaracteres[j];
  108. listaCaracteres[j]=temp;
  109. }
  110. }
  111.  
  112. }
  113. system("cls");
  114. cout<<"Elementos Ordenados :"<<endl;
  115. for(i=0; i<x; i++)
  116. {
  117. cout<<endl;
  118. cout<<"Elemento "<< i+1<<": " <<listaCaracteres[i]<<endl;
  119. }
  120. delete[] listaCaracteres;
  121. break;
  122.  
  123. }
  124. }
  125.  
  126. void ordenamientos::ordenamientoInsercion()
  127. {
  128. int opc;
  129. cout<<" Metodo Por Insercion "<<'\n'<<endl;
  130. cout<<" Que deseas Ordenar"<<endl;
  131. cout<<" 1.- Numeros"<<endl;
  132. cout<<" 2.- Letras"<<endl;
  133. cout<<"                                Opcion: ";
  134. cin>>opc;
  135. system("cls");
  136. switch(opc)
  137. {
  138. case 1:
  139.            cout<<" Introduzca el numero de elementos a insertar "<<endl;
  140.            cout<<"Numeros de Elementos: ";
  141.            cin>>x;
  142. listaEnteros= new(nothrow) int[x];
  143. system("cls");
  144. cout<<"Introduzca los elementos de la lista"<<endl;
  145. for(i=0; i<x; i++)
  146. {
  147. cin>>listaEnteros[i];
  148. }
  149. for (i = 1; i < x; i++)
  150. {
  151. temp = listaEnteros[i];
  152. j = i - 1;
  153. while ( (listaEnteros[j] > temp) && (j >= 0) )
  154. {
  155. listaEnteros[j + 1] = listaEnteros[j];
  156. j--
  157. listaEnteros[j + 1] = temp;
  158. }
  159. }
  160. system("cls");
  161. cout<<"Elementos Ordenados :"<<endl;
  162. for(j=0; j<x; j++)
  163. {
  164. cout<<endl;
  165. cout<<"Elemento "<< j+1<<": " <<listaEnteros[j]<<endl;;
  166. }
  167. delete[] listaEnteros;
  168. break;
  169. case 2:
  170.  
  171. cout<<"Introduzca el numero de elementos a insertar "<<endl;
  172. cout<<"  Numeros de Elementos: ";
  173. cin>>x;
  174. listaCaracteres= new(nothrow) char[x];
  175. system("cls");
  176. cout<<"Introduzca los elementos de la lista"<<endl
  177. for(i=0; i<x; i++)
  178. {
  179. cin>>listaCaracteres[i];
  180. }
  181.  
  182. for(i=0;i<x-1;i++)
  183. {
  184. for(j=i+1;j<x;j++)
  185. {
  186. if(listaCaracteres[i]>listaCaracteres[j])
  187. {
  188. temp=listaCaracteres[i];
  189. listaCaracteres[i]=listaCaracteres[j];
  190. listaCaracteres[j]=temp;
  191. }
  192. }
  193.  
  194. }
  195.  
  196. system("cls");
  197. cout<<"Elementos Ordenados :"<<endl;
  198. for(j=0; j<x; j++)
  199. {
  200. cout<<endl;
  201. cout<<"Elemento "<< j+1<<": " <<listaCaracteres[j]<<endl;;
  202. }
  203.  
  204. delete[] listaCaracteres;
  205. break;
  206.  
  207. }
  208. }
  209.  
  210.  
  211. void ordenamientos::ordenamientoShell()
  212. {
  213. int inter,x,n=0,i=0,j=0,k=0,temp;
  214. int opc;
  215. cout<<"Metodo de Shell "<<'\n'<<endl;
  216. cout<<"                            Que deseas Ordenar"<<endl;
  217. cout<<"                               1.- Numeros"<<endl;
  218. cout<<"                               2.- Letras"<<endl;
  219. cout<<"                                Opcion: ";
  220. cin>>opc;
  221. system("cls");
  222. switch(opc)
  223. {
  224. case 1:
  225. cout<<"Introduzca el numero de elementos a insertar "<<endl;
  226. cout<<"                    Numeros de Elementos: ";
  227.        cin>>x;
  228. inter = x/2;
  229. listaEnteros= new(nothrow) int[x];
  230. system("cls");
  231. cout<<"Introduzca los elementos de la lista"<<endl;
  232. for(i=0; i<x; i++)
  233. {
  234. cin>>listaEnteros[i];
  235. }
  236.            while(inter>0)
  237. {
  238.  
  239. for(i=inter;i<x;i++)
  240. {
  241.  
  242. n++;
  243.  
  244. j=i-inter;
  245.  
  246. while(j>=0)
  247. {
  248.  
  249. k=j+inter;
  250.  
  251. if(listaEnteros[j]<=listaEnteros[k])
  252. {
  253. j--;
  254. }
  255.  
  256. else
  257. {
  258.  
  259. temp=listaEnteros[j];
  260.  
  261. listaEnteros[j]=listaEnteros[k];
  262.  
  263. listaEnteros[k]=temp;
  264.  
  265. j=j-inter;
  266. }
  267.  
  268. }
  269.  
  270. }inter = inter/2;
  271. }
  272.  
  273.  
  274. system("cls");
  275.  
  276. cout<<"Elementos Ordenados :"<<endl;
  277.  
  278. for(j=0; j<x; j++)
  279. {
  280.  
  281. cout<<endl;
  282.  
  283. cout<<"Elemento "<< j+1<<": " <<listaEnteros[j]<<endl;;
  284.  
  285. }
  286.  
  287. delete[] listaEnteros;
  288.  
  289. break;
  290.  
  291. case 2:
  292.  
  293. cout<<"            Introduzca el numero de elementos a insertar "<<endl;
  294.  
  295. cout<<"                    Numeros de Elementos: ";
  296.  
  297. cin>>x;
  298.  
  299. inter = x/2;
  300.  
  301. listaCaracteres= new(nothrow) char[x];
  302.  
  303. system("cls");
  304.  
  305. cout<<"Introduzca los elementos de la lista"<<endl;
  306.  
  307. for(i=0; i<x; i++)
  308. {
  309.  
  310. cin>>listaCaracteres[i];
  311. }
  312.  
  313. while(inter>0)
  314. {
  315.  
  316. for(i=inter;i<x;i++)
  317. {
  318.  
  319. n++;
  320.  
  321. j=i-inter;
  322.  
  323. while(j>=0)
  324. {
  325.  
  326. k=j+inter;
  327.  
  328. if(listaCaracteres[j]<=listaCaracteres[k])
  329. {
  330. j--;
  331. }
  332.  
  333. else
  334. {
  335.  
  336. temp=listaCaracteres[j];
  337.  
  338. listaCaracteres[j]=listaCaracteres[k];
  339.  
  340. listaCaracteres[k]=temp;
  341.  
  342. j=j-inter;
  343. }
  344.  
  345. }
  346.  
  347. }inter = inter/2;
  348. }
  349.  
  350.  
  351. system("cls");
  352.  
  353. cout<<"Elementos Ordenados :"<<endl;
  354.  
  355. for(j=0; j<x; j++)
  356. {
  357.  
  358. cout<<endl;
  359.  
  360. cout<<"Elemento "<< j+1<<": " <<listaCaracteres[j]<<endl;;
  361.  
  362. }
  363.  
  364. delete[] listaCaracteres;
  365.  
  366. break;
  367.  
  368. }
  369. }
  370.  
  371.  
  372. void  main()
  373. {
  374. int inicio,fin,tiempo,opcion;
  375. inicio=clock();
  376. ordenamientos O;
  377. cout<<" Selecciones el Metodo de Ordenamiento: "<<endl;
  378. cout<<'\n'<<"                                  1.- Metodo Burbuja "<<endl;
  379. cout<<"                                2.- Metodo de Insercion "<<endl;
  380. cout<<"                                 3.- Metodo de Shell "<<endl;
  381. cout<<"                                     Metodo Numero: ";
  382. cin>>opcion;
  383. system("cls");
  384. switch(opcion)
  385. {
  386. case 1:
  387. O.ordenamientoBurbuja();
  388. break;
  389. case 2:
  390. O.ordenamientoInsercion();
  391. break;
  392. case 3:
  393. O.ordenamientoShell();
  394. break;
  395.  
  396.        fin = clock();
  397. tiempo = fin-inicio;
  398. cout<<'\n'<<"Tiempo de Ejecucion: "<<tiempo<<" Milisegundos"<<endl;
  399. system("PAUSE");
  400.  
  401. }
  402. }
  403.  


« Última modificación: 25 Mayo 2011, 19:05 pm por Norochii » En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ordenamientos Burbuja, Insercion y Shell en C++
Programación C/C++
Norochii 0 4,641 Último mensaje 25 Mayo 2011, 18:40 pm
por Norochii
ejemplo de ordenamientos básicos
Programación C/C++
david_BS 0 2,663 Último mensaje 2 Abril 2012, 02:30 am
por david_BS
Varios ejercicios de archivos/ordenamientos
Programación C/C++
proxiom 0 1,470 Último mensaje 20 Mayo 2015, 15:40 pm
por proxiom
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines