00001
00008 #ifndef __SEQ_UTILS_H_
00009 #define __SEQ_UTILS_H_
00010
00011 #include <vector>
00012
00018 namespace seq {
00019
00039 template <typename T> void flashsort(T* a, int n, int m, int *ctr);
00040
00050 template <typename T>
00051 void makeVectorUnique(std::vector<T>& vec, bool isSorted) ;
00052
00062 template <typename T>
00063 bool BinarySearch(const T* arr, unsigned int nelem, const T & key, unsigned int *idx) ;
00064
00074 template <typename T>
00075 int UpperBound (unsigned int nelem,const T * arr,unsigned int startIdx, const T & key);
00076
00088 template <typename T>
00089 bool maxLowerBound(const std::vector<T> & arr,const T & key, unsigned int & retIdx,
00090 unsigned int* leftIdx, unsigned int* rightIdx);
00091
00092 }
00093
00094 #include "seqUtils.txx"
00095
00096 #endif
00097