summaryrefslogtreecommitdiffstats
path: root/ml/dlib/dlib/sequence/sequence_sort_2.h
diff options
context:
space:
mode:
Diffstat (limited to 'ml/dlib/dlib/sequence/sequence_sort_2.h')
-rw-r--r--ml/dlib/dlib/sequence/sequence_sort_2.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/ml/dlib/dlib/sequence/sequence_sort_2.h b/ml/dlib/dlib/sequence/sequence_sort_2.h
new file mode 100644
index 000000000..558d4e0d5
--- /dev/null
+++ b/ml/dlib/dlib/sequence/sequence_sort_2.h
@@ -0,0 +1,65 @@
+// Copyright (C) 2003 Davis E. King (davis@dlib.net)
+// License: Boost Software License See LICENSE.txt for the full license.
+#ifndef DLIB_SEQUENCE_SORt_2_
+#define DLIB_SEQUENCE_SORt_2_
+
+#include "sequence_sort_abstract.h"
+#include "../algs.h"
+#include "../sort.h"
+
+namespace dlib
+{
+
+ template <
+ typename seq_base
+ >
+ class sequence_sort_2 : public seq_base
+ {
+ typedef typename seq_base::type T;
+
+ public:
+
+ /*!
+ this is a version of the QuickSort algorithm
+ this uses the dlib::qsort_array function
+ !*/
+
+ void sort (
+ );
+
+
+ };
+
+ template <
+ typename seq_base
+ >
+ inline void swap (
+ sequence_sort_2<seq_base>& a,
+ sequence_sort_2<seq_base>& b
+ ) { a.swap(b); }
+
+// ----------------------------------------------------------------------------------------
+// ----------------------------------------------------------------------------------------
+// member function definitions
+// ----------------------------------------------------------------------------------------
+// ----------------------------------------------------------------------------------------
+
+ template <
+ typename seq_base
+ >
+ void sequence_sort_2<seq_base>::
+ sort (
+ )
+ {
+ if (this->size() > 1)
+ {
+ dlib::qsort_array(*this,0,this->size()-1);
+ }
+ }
+
+// ----------------------------------------------------------------------------------------
+
+}
+
+#endif // DLIB_SEQUENCE_SORt_2_
+