

#include <nitro/math/qsort.h>
void MATH_QSort( void *head,
u32 num,
u32 width,
MATHCompareFunc comp,
void *stackBuf );
| head | ソートするデータへのポインタを渡します。 |
| num | ソートするデータの個数を指定します。 |
| width | データ1つ分のデータサイズを指定します。 |
| comp | 配列要素の比較関数を指定します。 |
| stackBuf | 内部で使用するバッファを与えます。必要なバッファのサイズはMATH_QSortStackSize()で取得することができます。もしもこの引数がNULLの場合にはスタックからメモリが確保されますが、スタックオーバーフローに注意する必要があります。 |
なし。
クイックソートをおこなう関数です。
この関数では再帰呼び出しは使用されませんが、替わりに引数stackBufでソート用の作業領域を与える必要があります。
もしも作業領域がNULLで与えられた場合にはスタックを使用してソートを行ないますので、スタックのオーバーフローに注意してください。
作業領域には(Log2(num)+1) * 8 byteの容量が必要となり、この値はMATH_QSortStackSize()で取得することが可能です。
MATH_QSortStackSize, MATHCompareFunc
Ver. 2005/04/12