ヒープソートを用いて配列を降順にソートする。
より厳密には、配列を降順に並べ替えるために必要な
配列要素の取り出し順を求める。
Sort an array into a descending order using a heap sort algorithm.
More strictly, investigate an order of array components to be extracted
to sort a given array to a descending order.
◆形式(Format)
#include <sort.h>
inline int ∗heap_sort(const int Ndata,const double ∗array)
◆引数(Arguments)
Ndata
配列要素数。
The number of components in the array.
array
配列。
An array.
◆戻り値(Return value)
引数arrayの配列要素を降順に並べるために取り出すべき配列要素番号の順番のリスト。
戻り値をreとしたとき、array[re[n]]が降順となるような整数配列reを返す。
言い換えれば引数arrayの配列要素を降順にするために
\(n+1\)番目に取り出すべき配列要素がre[n]である。
A list of order of the array components to be extracted
to sort the argument array to a descending order;
this function returns an integer array re such that
array[re[n]] is sorted in a descending order.
In other words, re[n] is the array index of argument array
which should be extracted at the \(n+1\)th place
to sort the array components of argument array
into a descending order.
◆使用例(Example)
double array[100];
int ∗index=heap_sort(100,array);
◆補足(Additional remarks)
この関数では引数arrayの中身のソートは行わない。
また、内部では関数create_heap_structure, sort_heap_dataを
順に呼び出して実行するだけである。
This function does not sort the data of argument array.
Internally, this function calls
functions create_heap_structure and sort_heap_data.