netgen/libsrc/general/sort.hpp

43 lines
1005 B
C++
Raw Normal View History

2009-01-13 04:40:13 +05:00
#ifndef FILE_SORT
#define FILE_SORT
/**************************************************************************/
/* File: sort.hh */
/* Author: Joachim Schoeberl */
/* Date: 07. Jan. 00 */
/**************************************************************************/
// order(i) is sorted index of element i
2009-01-25 17:35:25 +05:00
extern void Sort (const Array<double> & values,
Array<int> & order);
2009-01-13 04:40:13 +05:00
2009-01-25 17:35:25 +05:00
extern void QickSort (const Array<double> & values,
Array<int> & order);
2009-01-13 04:40:13 +05:00
template <class T>
inline void BubbleSort (int size, T * data)
{
T hv;
for (int i = 0; i < size; i++)
for (int j = i+1; j < size; j++)
if (data[i] > data[j])
{
hv = data[i];
data[i] = data[j];
data[j] = hv;
}
}
template <class T>
2009-01-25 17:35:25 +05:00
inline void BubbleSort (Array<T> & data)
2009-01-13 04:40:13 +05:00
{
if(data.Size() > 0)
BubbleSort (data.Size(), &data[data.Begin()]);
}
#endif