sorter.h

Go to the documentation of this file.
00001 
00041 #ifndef ABA_SORTER_H
00042 #define ABA_SORTER_H
00043 
00044 #include "abacus/array.h"
00045   template <class ItemType, class KeyType>
00046   class  ABA_SORTER :  public ABA_ABACUSROOT  {
00047     public:
00048 
00053       ABA_SORTER (ABA_GLOBAL *glob);
00054 
00066       void quickSort(int n, ABA_ARRAY<ItemType> &items, ABA_ARRAY<KeyType> &keys);
00067 
00084       void quickSort(ABA_ARRAY<ItemType> &items, ABA_ARRAY<KeyType> &keys,
00085                      int left, int right);
00086 
00108       void heapSort(int n, ABA_ARRAY<ItemType> &items, ABA_ARRAY<KeyType> &keys);
00109 
00110     private:
00111 
00135       int partition(ABA_ARRAY<ItemType> &items, ABA_ARRAY<KeyType> &keys,
00136                     int left, int right);
00137                     
00138 
00152       void buildHeap(int n, ABA_ARRAY<ItemType> &items, ABA_ARRAY<KeyType> &keys);
00153 
00169       void heapify(int n, ABA_ARRAY<ItemType> &items, ABA_ARRAY<KeyType> &keys, int root);
00170 
00179       void check(int n, ABA_ARRAY<ItemType> &items, ABA_ARRAY<KeyType> &keys);
00180 
00183       ABA_GLOBAL *glob_;
00184 
00187       ItemType itemSwap_;
00188 
00191       KeyType  keySwap_;      
00192     };
00193 
00194 #include "abacus/sorter.inc"
00195 
00196 #endif // ABA_SORTER_H
00197 
00198 

Generated on Tue Aug 14 18:09:54 2007 for ABACUS by  doxygen 1.5.1