Advertisement
xlujiax

Stack_Array_Stack

May 4th, 2017
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.26 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3. //#include "libordenamiento.a"
  4. using namespace std;
  5.  
  6. template <typename T>
  7. void ordenar(T[],int);
  8.  
  9. template <typename T>
  10. void quicksort(T[],int,int);
  11.  
  12. int main(int argc, char** argv) {
  13.     int A[] = {0,1,2,3,4,5,6,7,8,9,10};
  14.     double B[] = {0.1,0.2,0.3,0.4};
  15.     int numDat = 11;
  16.     //ordenar(B,numDat);
  17.     quicksort(A,0,numDat-1);
  18.     for (int i=0; i<numDat; i++){
  19.         cout << A[i] << " ";
  20.     }
  21.     cout << endl;
  22.     return 0;
  23. }
  24. #include "ordenamiento.h" //Ordenamiento.Cpp //Otra Libreria
  25. #include <iostream>
  26.  
  27. template <typename T>
  28. void ordenar(T elem[], int numDat){
  29.     //quicksort(elem, 0, numDat-1);
  30.     firstsort(elem,numDat);
  31. }
  32.  
  33. template <typename T>
  34. void quicksort(T elem[], int izq, int der){
  35.     int limite;
  36.     if(izq>=der) return;
  37.     cambiar(elem, izq, (izq+der)/2);
  38.    
  39.     limite=izq;
  40.     for(int i=izq+1; i<=der; i++){
  41.         if(elem[i] > elem[izq])
  42.             cambiar(elem,++limite,i);
  43.     }    
  44.     cambiar(elem,izq,limite);
  45.     quicksort(elem,izq,limite-1);
  46.     quicksort(elem,limite+1,der);
  47.  
  48. }
  49.  
  50. template <typename T>
  51. void firstsort(T elem[], int numDat){
  52.     for(int i=0; i<numDat-1; i++)
  53.         for(int j=i+1; j<numDat; j++){
  54.             if (elem[j]>elem[i]){
  55.                 cambiar(elem,i,j);
  56.             }
  57.         }
  58. }
  59.  
  60. template <typename T>
  61. void cambiar(T elem[], int i, int j){
  62.     T auxiliar;
  63.     auxiliar = elem[i];
  64.     elem[i] = elem[j];
  65.     elem[j] = auxiliar;
  66. }
  67.  
  68. #ifndef ORDENAMIENTO_H //Ordenamiento.h
  69. #define ORDENAMIENTO_H
  70.  
  71. template <typename T>
  72. void ordenar(T[], int);
  73.  
  74. template void ordenar(int[], int);
  75. template void ordenar(double[], int);
  76. template void ordenar(char[], int);
  77.  
  78. template <typename T>
  79. void firstsort(T[], int);
  80.  
  81. template void firstsort(int[], int);
  82. template void firstsort(double[], int);
  83. template void firstsort(char[], int);
  84.  
  85.  
  86. template <typename T>
  87. void cambiar(T[], int, int);
  88.  
  89. template void cambiar(int[],int,int);
  90. template void cambiar(double[],int,int);
  91. template void cambiar(char[],int,int);
  92.  
  93. template <typename T>
  94. void quicksort(T[], int, int);
  95.  
  96. template void quicksort(int[],int,int);
  97. template void quicksort(double[],int,int);
  98. template void quicksort(char[],int,int);
  99.  
  100. #endif /* ORDENAMIENTO_H */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement