# MATH_QSort

## 構文

      #include <nitro/math/qsort.h>

      void MATH_QSort( void *head,
                          u32 num,
                          u32 width,
                          MATHCompareFunc comp,
                          void *stackBuf );

## 引数

head | ソートするデータへのポインタを渡します。
num | ソートするデータの個数を指定します。
width | データ１つ分のデータサイズを指定します。
comp | 配列要素の比較関数を指定します。
stackBuf | 内部で使用するバッファを与えます。必要なバッファのサイズは`MATH_QSortStackSize()`で取得することができます。 もしもこの引数がNULLの場合にはスタックからメモリが確保されますが、スタックオーバーフローに注意する必要があります。

## 返り値

なし。

## 説明

クイックソートをおこなう関数です。
この関数では再帰呼び出しは使用されませんが、替わりに引数stackBufでソート用の作業領域を与える必要があります。
もしも作業領域がNULLで与えられた場合にはスタックを使用してソートを行ないますので、スタックのオーバーフローに注意してください。
作業領域には(Log2(num)+1) * 8 byteの容量が必要となり、この値は`MATH_QSortStackSize()`で取得することが可能です。

## 参照

`MATH_QSortStackSize, MATHCompareFunc`

## 履歴

Ver. 2005/04/12