1 /* 2 * Copyright 2010-2019 Branimir Karadzic. All rights reserved. 3 * License: https://github.com/bkaradzic/bx#license-bsd-2-clause 4 */ 5 6 #ifndef BX_SORT_H_HEADER_GUARD 7 #define BX_SORT_H_HEADER_GUARD 8 9 #include "bx.h" 10 11 namespace bx 12 { 13 /// 14 typedef int32_t (*ComparisonFn)(const void* _lhs, const void* _rhs); 15 16 /// 17 void quickSort( 18 void* _data 19 , uint32_t _num 20 , uint32_t _stride 21 , const ComparisonFn _fn 22 ); 23 24 /// 25 void radixSort( 26 uint32_t* _keys 27 , uint32_t* _tempKeys 28 , uint32_t _size 29 ); 30 31 /// 32 template <typename Ty> 33 void radixSort( 34 uint32_t* _keys 35 , uint32_t* _tempKeys 36 , Ty* _values 37 , Ty* _tempValues 38 , uint32_t _size 39 ); 40 41 /// 42 void radixSort( 43 uint64_t* _keys 44 , uint64_t* _tempKeys 45 , uint32_t _size 46 ); 47 48 /// 49 template <typename Ty> 50 void radixSort( 51 uint64_t* _keys 52 , uint64_t* _tempKeys 53 , Ty* _values 54 , Ty* _tempValues 55 , uint32_t _size 56 ); 57 58 } // namespace bx 59 60 #include "inline/sort.inl" 61 62 #endif // BX_SORT_H_HEADER_GUARD 63