git-svn-id: svn://db.shs.com.ru/pip@681 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2019-01-24 14:42:00 +00:00
parent 8ba3d5dc8e
commit 0e06a7b003

View File

@@ -38,6 +38,20 @@ __PIVECTOR_SIMPLE_TYPE__(T)
template<class T> template<class T>
void piQuickSort(T * a, ssize_t N) { void piQuickSort(T * a, ssize_t N) {
if (N < 1) return; if (N < 1) return;
if (N < 47) {
T tmp;
ssize_t i,j;
for(i=1; i<N; i++) {
tmp = a[i];
j = i-1;
while(tmp<a[j] && j>=0)
{
a[j+1] = a[j];
j = j-1;
}
a[j+1] = tmp;
}
} else {
ssize_t i = 0, j = N; ssize_t i = 0, j = N;
T & p(a[N >> 1]); T & p(a[N >> 1]);
do { do {
@@ -53,6 +67,7 @@ void piQuickSort(T * a, ssize_t N) {
} while (i <= j); } while (i <= j);
if (j > 0) piQuickSort(a, j); if (j > 0) piQuickSort(a, j);
if (N > i) piQuickSort(a + i, N - i); if (N > i) piQuickSort(a + i, N - i);
}
} }
template <typename Key, typename T> template <typename Key, typename T>