LINUX.ORG.RU

История изменений

Исправление devl547, (текущая версия) :

которая бы работала для 3 элементов быстрее, чем стандартный qsort()?

stacksort?))

Может так?

static inline void sort3_sorting_network_simple_swap(int * d){
#define min(x, y) (x<y?x:y)
#define max(x, y) (x<y?y:x) 
#define SWAP(x,y) { const int a = min(d[x], d[y]); const int b = max(d[x], d[y]); d[x] = a; d[y] = b;}
SWAP(1, 2);
SWAP(0, 2);
SWAP(0, 1);
#undef SWAP
#undef min
#undef max
}

Исходная версия devl547, :

которая бы работала для 3 элементов быстрее, чем стандартный qsort()?

stacksort?))

Может так?

static inline void sort3_sorting_network_simple_swap(int * d){
#define min(x, y) (x<y?x:y)
#define max(x, y) (x<y?y:x)
#define SWAP(x,y) { const int a = min(d[x], d[y]); const int b = max(d[x], d[y]); d[x] = a; d[y] = b;}
SWAP(1, 2);
SWAP(0, 2);
SWAP(0, 1);
#undef SWAP
#undef min
#undef max
}