MATH_QSort

構文

#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