解説クラスCopyClear(4)
解説クラスCopyClear(4)
2024年2月27初講(初稿)
この講義は解説『解説クラスCopyClear(3)』
の続きです!
(4-8)ソート関数「Sort()」系
// ソーティング:データソート
int Sort( // TypeArrayソート
int sw, // 0:昇順、1:降順
TypeArray *pa, // 配列1~100の情報
int n ); // 配列の個数 1..100
void Sort( // 配列ソート:BYTE
int sw, // 0:昇順、 1:降順
BYTE buf[], // バッファー
int size ); // バッファーサイズ
void Sort( // 配列ソート:short
int sw, // 0:昇順、 1:降順
short buf[], // バッファー
int size ); // バッファーサイズ
void Sort( // 配列ソート:long
int sw, // 0:昇順、 1:降順
long buf[], // バッファー
int size ); // バッファーサイズ
void Sort( // 配列ソート:int
int sw, // 0:昇順、 1:降順
int buf[], // バッファー
int size ); // バッファーサイズ
void Sort( // 配列ソート:float
int sw, // 0:昇順、 1:降順
float buf[], // バッファー
int size ); // バッファーサイズ
void Sort( // 配列ソート:double
int sw, // 0:昇順、 1:降順
double buf[], // バッファー
int size ); // バッファーサイズ
void Sort( // 配列ソート:64Bit整数
int sw, // 0:昇順、 1:降順
__int64 buf[], // バッファー
int size ); // バッファーサイズ
void Sort( // 配列ソート:TypeCorr
int sw, // 0:昇順、 1:降順
TypeCorr buf[], // バッファー
int size ); // バッファーサイズ
void Sort( // 配列ソート:TypeCorrIX
int sw, // 0:昇順、 1:降順
TypeCorrIX buf[], // バッファー
int size ); // バッファーサイズ
void SortX( // 配列ソート:TypeXY:X座標
int sw, // 0:昇順、 1:降順
TypeXY buf[], // バッファー
int size // バッファーサイズ
);
void SortY( // 配列ソート:TypeXY:Y座標
int sw, // 0:昇順、 1:降順
TypeXY buf[], // バッファー
int size // バッファーサイズ
);
void SortX( // 配列ソート:TypeXYF:X座標
int sw, // 0:昇順、 1:降順
TypeXYF buf[], // バッファー
int size // バッファーサイズ
);
void SortY( // 配列ソート:TypeXYF:Y座標
int sw, // 0:昇順、 1:降順
TypeXYF buf[], // バッファー
int size // バッファーサイズ
);
void SortX( // 配列ソート:TypeXYD:X座標
int sw, // 0:昇順、 1:降順
TypeXYD bufD[], // バッファー
int size // バッファーサイズ
);
void SortY( // 配列ソート:TypeXYD:Y座標
int sw, // 0:昇順、 1:降順
TypeXYD bufD[], // バッファー
int size // バッファーサイズ
);
void SortX( // 配列ソート:TypeXYHV:X座標
int sw, // 0:昇順、 1:降順
TypeXYHV buf[], // バッファー
int size // バッファーサイズ
);
void SortY( // 配列ソート:TypeXYHV:Y座標
int sw, // 0:昇順、 1:降順
TypeXYHV buf[], // バッファー
int size // バッファーサイズ
);
void SortX( // 配列ソート:TypeXYHVIX:X座標
int sw, // 0:昇順、 1:降順
TypeXYHVIX buf[], // バッファー
int size // バッファーサイズ
);
void SortY( // 配列ソート:TypeXYHVIX:Y座標
int sw, // 0:昇順、 1:降順
TypeXYHVIX buf[], // バッファー
int size // バッファーサイズ
);
void SortArea( // 配列ソート:TypeSf:面積ソート
int sw, // 0:昇順、 1:降順
TypeSf bufS[], // バッファー
int size // バッファーサイズ
);
void SortArea( // 配列ソート:TypeMB:面積ソート
int sw, // 0:昇順、 1:降順
TypeMB bufM[], // バッファー
int size // バッファーサイズ
);
// ソーティング:16bitIndex付きソート
int SortIndex( // キー付ソート:BYTE
int sw, // 0:Key昇順、 1:Key降順
BYTE bufkey[], // キー部のバッファー
short bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
int SortIndex( // キー付ソート:short
int sw, // 0:Key昇順、 1:Key降順
short bufkey[], // キー部のバッファー
short bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
int SortIndex( // キー付ソート:long
int sw, // 0:Key昇順、 1:Key降順
long bufkey[], // キー部のバッファー
short bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
int SortIndex( // キー付ソート:long
int sw, // 0:Key昇順、 1:Key降順
int bufkey[], // キー部のバッファー
short bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
int SortIndex( // キー付ソート:float
int sw, // 0:Key昇順、 1:Key降順
float bufkey[], // キー部のバッファー
short bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
int SortIndex( // キー付ソート:double
int sw, // 0:Key昇順、 1:Key降順
double bufkey[], // キー部のバッファー
short bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
int SortIndex( // キー付ソート:64Bit整数
int sw, // 0:Key昇順、 1:Key降順
__int64 bufkey[], // キー部のバッファー
short bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
// ソーティング:32bitIndex付きソート
int SortIndex( // キー付ソート:BYTE
int sw, // 0:Key昇順、 1:Key降順
BYTE bufkey[], // キー部のバッファー
int bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
int SortIndex( // キー付ソート:short
int sw, // 0:Key昇順、 1:Key降順
short bufkey[], // キー部のバッファー
int bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
int SortIndex( // キー付ソート:long
int sw, // 0:Key昇順、 1:Key降順
long bufkey[], // キー部のバッファー
int bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
int SortIndex( // キー付ソート:long
int sw, // 0:Key昇順、 1:Key降順
int bufkey[], // キー部のバッファー
int bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
int SortIndex( // キー付ソート:float
int sw, // 0:Key昇順、 1:Key降順
float bufkey[], // キー部のバッファー
int bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
int SortIndex( // キー付ソート:double
int sw, // 0:Key昇順、 1:Key降順
double bufkey[], // キー部のバッファー
int bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
int SortIndex( // キー付ソート:64Bit整数
int sw, // 0:Key昇順、 1:Key降順
__int64 bufkey[], // キー部のバッファー
int bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
// 並替後処理:16bitIndex付きソート
int SortCopy( // ソート後添え字で並び替え
TypeArray *pa, // 配列1~10の情報
int n, // 配列の個数 0..99
short bufix[], // 添字部のBuffer
int offset, // 先頭からのOffset
int l // 配列の最小大きさ
);
int SortCopy( // Sort後添字で並び替え:BYTE
BYTE buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並替え:short
short buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並び替え:int
int buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並び替え:float
float buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並替:double
double buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並替:64Bit整数
__int64 buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並替:void*
void* buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並替:TypeXY
TypeXY buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並替:TypeXYI
TypeXYI buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並替:TypeXYHV
TypeXYHV buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
// 並替後処理:32bitIndex付きソート
int SortCopy( // ソート後添え字で並び替え
TypeArray *pa, // 配列1~10の情報
int n, // 配列の個数 0..99
int bufix[], // 添字部のBuffer
int offset, // 先頭からのOffset
int l // 配列の最小大きさ
);
int SortCopy( // Sort後添字で並び替え:BYTE
BYTE buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並替え:short
short buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並び替え:int
int buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並び替え:float
float buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並替:double
double buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並替:64Bit整数
__int64 buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並替:void*
void* buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並替:TypeXY
TypeXY buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並替:TypeXYI
TypeXYI buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
int SortCopy( // Sort後添字で並替:TypeXYHV
TypeXYHV buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
void SortUpdate( // ソート(1Data更新):BYTE
int sw, // 0:昇順、 1:降順
BYTE buf[], // バッファー
int size, // バッファーサイズ
int d ); // データ
void SortUpdate( // ソート(1Data更新):short
int sw, // 0:昇順、 1:降順
short buf[], // バッファー
int size, // バッファーサイズ
int d ); // データ
void SortUpdate( // ソート(1Data更新):int
int sw, // 0:昇順、 1:降順
int buf[], // バッファー
int size, // バッファーサイズ
int d ); // データ
void SortUpdate( // ソート(1Data更新):float
int sw, // 0:昇順、 1:降順
float buf[], // バッファー
int size, // バッファーサイズ
double d ); // データ
void SortUpdate( // ソート(1Data更新):double
int sw, // 0:昇順、 1:降順
double buf[], // バッファー
int size, // バッファーサイズ
double d ); // データ
void SortUpdate( // ソート(1Data更新):TypeCorr
int sw, // 0:昇順、 1:降順
TypeCorr buf[], // バッファー
int size, // バッファーサイズ
double d, // データ
int x, // X座標
int y ); // Y座標
void SortMerge( // ソート(併合):BYTE
int sw, // 0:昇順、 1:降順
BYTE buf1[], // バッファー:1
BYTE buf2[], // バッファー:2
BYTE buf[], // バッファー:格納先
int size1, // バッファーサイズ:1
int size2 ); // バッファーサイズ:2
void SortMerge( // ソート(併合):short
int sw, // 0:昇順、 1:降順
short buf1[], // バッファー:1
short buf2[], // バッファー:2
short buf[], // バッファー:格納先
int size1, // バッファーサイズ:1
int size2 ); // バッファーサイズ:2
void SortMerge( // ソート(併合):int
int sw, // 0:昇順、 1:降順
int buf1[], // バッファー:1
int buf2[], // バッファー:2
int buf[], // バッファー:格納先
int size1, // バッファーサイズ:1
int size2 ); // バッファーサイズ:2
void SortMerge( // ソート(併合):float
int sw, // 0:昇順、 1:降順
float buf1[], // バッファー:1
float buf2[], // バッファー:2
float buf[], // バッファー:格納先
int size1, // バッファーサイズ:1
int size2 ); // バッファーサイズ:2
void SortMerge( // ソート(併合):double
int sw, // 0:昇順、 1:降順
double buf1[], // バッファー:1
double buf2[], // バッファー:2
double buf[], // バッファー:格納先
int size1, // バッファーサイズ:1
int size2 ); // バッファーサイズ:2
void SortMerge( // ソート(併合):TypeCorr
int sw, // 0:昇順、 1:降順
TypeCorr buf1[], // バッファー:1
TypeCorr buf2[], // バッファー:2
TypeCorr buf[], // バッファー:格納先
int size1, // バッファーサイズ:1
int size2 ); // バッファーサイズ:2
int SortMult( // 複数配列ソート:個数小(~32767)
int sw, // 0:昇順、1:降順
TypeArray *pkey, // 配列情報:キー
TypeArray *pa, // 配列情報:従属
int n, // 配列個数 1..100
int offset, // 先頭からのOffset
int l // 配列のサイズ
);
int SortMultLarge( // 複数配列ソート:個数大(32768~)
int sw, // 0:昇順、1:降順
TypeArray *pkey, // 配列情報:キー
TypeArray *pa, // 配列情報:従属
int n, // 配列個数 1..100
int offset, // 先頭からのOffset
int l // 配列のサイズ
);
int MultSorting( // マルチソート
BYTE *ptrsw, // 0:昇順、1:降順
TypeArray *pa, // 配列1~100の情報
int n // 配列の個数 1..100
);
int MultSortingShort( // MultSort:short単位配列群
BYTE *ptrsw, // 0:昇順、1:降順
short **pa, // 配列1~100の情報
int n, // 配列の個数 1..100
int l // 配列のサイズ
);
void ConvertXY2int( // TypeXY→int
TypeXY xy[], // 元のTypeXYバッファー
int buf[], // 変換先のintバッファー
int size, // バッファーサイズ
int mode=1 ); // モード
// 0:XY→int
// 1:YX→int(省略時)
void ConvertXYHV2int( // TypeXYHV→int
TypeXYHV xy[], // 元のTypeXYHVバッファー
int buf[], // 変換先のintバッファー
int size, // バッファーサイズ
int mode=1, // モード
// 0:XY→int
// 1:YX→int(省略時)
// 2:HV→int
// 3:VH→int
// 4:YV→int
int inc=0 ); // 増加幅(0:省略時目印)
int BinarySearchX( // 2分探査:X座標
TypeXY buf[], // バッファー
int size, // バッファーサイズ
int x ); // 探査対象
int BinarySearchY( // 2分探査:Y座標
TypeXY buf[], // バッファー
int size, // バッファーサイズ
int y ); // 探査対象
int BinarySearchX( // 2分探査:X座標
TypeXYF buf[], // バッファー
int size, // バッファーサイズ
double x ); // 探査対象
int BinarySearchY( // 2分探査:Y座標
TypeXYF buf[], // バッファー
int size, // バッファーサイズ
double y ); // 探査対象
int BinarySearchX( // 2分探査:X座標
TypeXYD buf[], // バッファー
int size, // バッファーサイズ
double x ); // 探査対象
int BinarySearchY( // 2分探査:Y座標
TypeXYD buf[], // バッファー
int size, // バッファーサイズ
double y ); // 探査対象
これだけ、関連する関数を用意しました!
ご存知の様にソート「Sort」は、英単語「Sort」は、
意味「分類する、仕分けする」・コンピューターサイエンス
的にはデータを並べ替える基本操作です!
基本的な操作なのでクラス「CopyClear」に入れる事が、
相応しいと判断し、ここに入れました!
★備考★
一目、観て頂いて分かるように多重定義で関数名「sort()」
や「sortX()」・「sortY()」・「sortArea()」・
「sortIndex()」・・・等と「()」内の引数や関数結果自体
の値の型「void 」・「int 」が異なると多重定義関数が多
い事に注意して下さい!
★理由★名前を考える事が難しいと考えたからです!
(4-8-1)ソート関数「int Sort(int sw,
TypeArray* pa,int n);」
int Sort( // TypeArrayソート
int sw, // 0:昇順、1:降順
TypeArray *pa, // 配列1~100の情報
int n ); // 配列の個数 1..100
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeArray* 」や、「BYTE buf[]」≫などが出るパターン
は稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と
馴染みが無いにも程が有る英単語しか無いので仕方が無い
から「最初の引数」に切り替えスイッチを置く事に
しました!
仮引数「TypeArray* pa,」は、画像では無く一次元配列を
しかも複数指定できる事を目的
★注意★元々、ADS社画像処理装置に搭載した
インタプリタ言語PIPLで配列データを使う為の仕組み
として構造体「TypeArray* 」を使用していた名残です!
★備考★PIPLも私の計画としては、新しく画像処理専用
言語として発表する心算ですので乞うご期待と記載して置き
ます!
仮引数「int n」は、仮引数「TypeArray* pa,」で示される
ポインタでデータ配列が有る事は理解していると思いますが
その配列が何組あるかを示す数が、この「int n」です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」及
びファイル「CopyClear120.cpp」が
対象】します!
(4-8-2)ソート関数「int Sort(int sw,
BYTE buf[],int size);」
void Sort( // 配列ソート:BYTE
int sw, // 0:昇順、 1:降順
BYTE buf[], // バッファー
int size ); // バッファーサイズ
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「BYTE buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「BYTE buf[],」は、一次元のデータ配列でデータの
単位が「BYTE型」1バイト符号無しです!
仮引数「int size」は、仮引数「BYTE buf[],」の配列の
サイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-3)ソート関数「int Sort(int sw,
short buf[],int size);」
void Sort( // 配列ソート:short
int sw, // 0:昇順、 1:降順
short buf[], // バッファー
int size ); // バッファーサイズ
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「short buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「short buf[],」は、一次元のデータ配列でデータの
単位が「short型」2バイト符号有りです!
仮引数「int size」は、仮引数「short buf[],」の配列の
サイズです!このサイズ分のデータをソーティング(並べ替
え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-4)ソート関数「void Sort(int sw,
long buf[],int size);」
void Sort( // 配列ソート:long
int sw, // 0:昇順、 1:降順
long buf[], // バッファー
int size ); // バッファーサイズ
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「long buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「long buf[],」は、一次元のデータ配列でデータの
単位が「long型」4バイト符号有りです!
仮引数「int size」は、仮引数「long buf[],」の配列の
サイズです!このサイズ分のデータをソーティング(並べ替
え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-5)ソート関数「void Sort(int sw,
int buf[],int size);」
void Sort( // 配列ソート:int
int sw, // 0:昇順、 1:降順
int buf[], // バッファー
int size ); // バッファーサイズ
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「int buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「int buf[],」は、一次元のデータ配列でデータの
単位が「int型」4バイト符号有りです!
仮引数「int size」は、仮引数「int buf[],」の配列の
サイズです!このサイズ分のデータをソーティング(並べ替
え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-6)ソート関数「void Sort(int sw,
float buf[],int size);」
void Sort( // 配列ソート:float
int sw, // 0:昇順、 1:降順
float buf[], // バッファー
int size ); // バッファーサイズ
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「float buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「float buf[],」は、一次元のデータ配列でデータの
単位が「float型」4バイト単精度浮動小数点実数型です!
仮引数「int size」は、仮引数「float buf[],」の配列の
サイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-7)ソート関数「void Sort(int sw,
double buf[],int size);」
void Sort( // 配列ソート:double
int sw, // 0:昇順、 1:降順
double buf[], // バッファー
int size ); // バッファーサイズ
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「double buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「double buf[],」は、一次元のデータ配列で
データの単位が「double 型」8バイト倍精度浮動小数点
実数型です!
仮引数「int size」は、仮引数「double buf[],」の配列の
サイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-8)ソート関数「void Sort(int sw,
__int64 buf[],int size);」
void Sort( // 配列ソート:64Bit整数
int sw, // 0:昇順、 1:降順
__int64 buf[], // バッファー
int size ); // バッファーサイズ
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「__int64 buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「__int64 buf[],」は、一次元のデータ配列で
データの単位が「__int64型」8バイト64ビット整数型
です!
仮引数「int size」は、仮引数「__int64 buf[],」の配列の
サイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★注意★「int 64型」は、VSで見つけたので使用しま
したが、ヒョットシテ他のコンパイラシステムでは使え無い
かも知れません!
ナンセ「__」始まりは異様過ぎるので・・・
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-9)ソート関数「void Sort(int sw,
TypeCorr buf[],int size);」
void Sort( // 配列ソート:TypeCorr
int sw, // 0:昇順、 1:降順
TypeCorr buf[], // バッファー
int size ); // バッファーサイズ
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeCorr buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「TypeCorr buf[],」は、一次元のデータ配列でデータ
の単位が「TypeCorr型」と画像処理で得られるデータ相関値
を扱うデータです!
仮引数「int size」は、仮引数「TypeCorr buf[],」の配列の
サイズです!このサイズ分のデータをソーティング(並べ替
え)します!
★注意★「TypeCorr型」は、画像を比較する用途で使用する
相関値「解説『解説クラスSupport』で解説した!
構造体「struct TypeCorr{}」です!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-10)ソート関数「void Sort(int sw,
TypeCorrIX buf[],int size);」
void Sort( // 配列ソート:TypeCorrIX
int sw, // 0:昇順、 1:降順
TypeCorrIX buf[], // バッファー
int size ); // バッファーサイズ
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeCorrIXbuf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「TypeCorrIXbuf[],」は、一次元のデータ配列で
データの単位が「TypeCorrIX型」と画像処理で得られる
データ相関値を扱うデータです!
仮引数「int size」は、仮引数「TypeCorrIXbuf[],」の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★注意★「TypeCorrIX型」は、画像を比較する用途で使用
する相関値「解説『解説クラスSupport』で解説し
た!
構造体「struct TypeCorrIX{}」です!
★備考★構造体「struct TypeCorr{}」との違いは、他の
データとのリンク用インデックス情報が付加されている事
です!
★備考★尚、構造体「TypeCorrIX型」の座標を示す値は、
short型です!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-11)ソート関数「void SortX(int sw,
TypeXY buf[],int size);」
void SortX( // 配列ソート:TypeXY:X座標
int sw, // 0:昇順、 1:降順
TypeXY buf[], // バッファー
int size // バッファーサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeXY buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「TypeXY buf[],」は、一次元のデータ配列でデータ
の単位が「TypeXY 型」と画像処理で使用するXY座標組
データです!
仮引数「int size」は、仮引数「TypeXY buf[],」の配列の
サイズです!
このサイズ分のデータをソーティング(並べ替え)します!
★注意★XY座標組データをコノ関数SortX()で比較する
時はX座標の大小で比較し、X座標が同じならばY座標の
大小で比較と二段階に成ります!
★備考★尚、構造体「TypeXY 型」の座標を示す値は、
short型です!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-12)ソート関数「void SortY(int sw,
TypeXY buf[],int size);」
void SortY( // 配列ソート:TypeXY:Y座標
int sw, // 0:昇順、 1:降順
TypeXY buf[], // バッファー
int size // バッファーサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeXY buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「TypeXY buf[],」は、一次元のデータ配列でデータ
の単位が「TypeXY 型」と画像処理で使用するXY座標組
データです!
仮引数「int size」は、仮引数「TypeXY buf[],」の配列の
サイズです!
このサイズ分のデータをソーティング(並べ替え)します!
★注意★XY座標組データをコノ関数SortY()で比較する
時はY座標の大小で比較し、Y座標が同じならばX座標の
大小で比較と二段階に成ります!
★備考★尚、構造体「TypeXY 型」の座標を示す値は、
short型です!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-13)ソート関数「void SortX(int sw,
TypeXYF buf[],int size);」
void SortX( // 配列ソート:TypeXYF:X座標
int sw, // 0:昇順、 1:降順
TypeXYF buf[], // バッファー
int size // バッファーサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeXYF buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「TypeXY Fbuf[],」は、一次元のデータ配列で
データの単位が「TypeXY F型」と画像処理で使用する
XY座標組データです!
仮引数「int size」は、仮引数「TypeXYF buf[],」の配列の
サイズです!
このサイズ分のデータをソーティング(並べ替え)します!
★注意★XY座標組データをコノ関数SortX()で比較する
時はX座標の大小で比較し、X座標が同じならばY座標の
大小で比較と二段階に成ります!
★備考★尚、構造体「TypeXYF型」の座標を示す値は、
float型です!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-14)ソート関数「void SortY(int sw,
TypeXYF buf[],int size);」
void SortY( // 配列ソート:TypeXYF:Y座標
int sw, // 0:昇順、 1:降順
TypeXYF buf[], // バッファー
int size // バッファーサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeXYF buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「TypeXYF buf[],」は、一次元のデータ配列で
データの単位が「TypeXYF型」と画像処理で使用する
XY座標組データです!
仮引数「int size」は、仮引数「TypeXYF buf[],」の配列の
サイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★注意★XY座標組データをコノ関数SortY()で比較する
時はY座標の大小で比較し、Y座標が同じならばX座標の
大小で比較と二段階に成ります!
★備考★尚、構造体「TypeXY F型」の座標を示す値は、
float型です!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-15)ソート関数「void SortX(int sw,
TypeXYD buf[],int size);」
void SortX( // 配列ソート:TypeXYD:X座標
int sw, // 0:昇順、 1:降順
TypeXYD bufD[], // バッファー
int size // バッファーサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeXYD buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「TypeXYD buf[],」は、一次元のデータ配列で
データの単位が「TypeXYD型」と画像処理で使用する
XY座標組データです!
仮引数「int size」は、仮引数「TypeXYD buf[],」の配列の
サイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★注意★XY座標組データをコノ関数SortX()で比較する
時はX座標の大小で比較し、X座標が同じならばY座標の
大小で比較と二段階に成ります!
★備考★尚、構造体「TypeXYD型」の座標を示す値は、
double 型です!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-16)ソート関数「void SortY(int sw,
TypeXYD buf[],int size);」
void SortY( // 配列ソート:TypeXYD:Y座標
int sw, // 0:昇順、 1:降順
TypeXYD bufD[], // バッファー
int size // バッファーサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeXYD buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「TypeXYD buf[],」は、一次元のデータ配列で
データの単位が「TypeXYD型」と画像処理で使用する
XY座標組データです!
仮引数「int size」は、仮引数「TypeXYD buf[],」の配列の
サイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★注意★XY座標組データをコノ関数SortY()で比較する
時はY座標の大小で比較し、Y座標が同じならばX座標の
大小で比較と二段階に成ります!
★備考★尚、構造体「TypeXYD型」の座標を示す値は、
double 型です!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-17)ソート関数「void SortX(int sw,
TypeXYHV buf[],int size);」
void SortX( // 配列ソート:TypeXYHV:X座標
int sw, // 0:昇順、 1:降順
TypeXYHV buf[], // バッファー
int size // バッファーサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeXY HVbuf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「TypeXY HVbuf[],」は、一次元のデータ配列で
データの単位が「TypeXY HV型」と画像処理で使用する
XY座標組データです!
仮引数「int size」は、仮引数「TypeXY HVbuf[],」の
配列のサイズです!
このサイズ分のデータをソーティング(並べ替え)します!
★注意★XY座標組データをコノ関数SortX()で比較する
時はX座標の大小で比較し、X座標が同じならばY座標の
大小で比較と二段階に成ります!
★備考★尚、構造体「TypeXY HV型」の座標を示す値は、
short型です!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-18)ソート関数「void SortY(int sw,
TypeXYHV buf[],int size);」
void SortY( // 配列ソート:TypeXYHV:Y座標
int sw, // 0:昇順、 1:降順
TypeXYHV buf[], // バッファー
int size // バッファーサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeXY HVbuf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「TypeXY HVbuf[],」は、一次元のデータ配列で
データの単位が「TypeXY HV型」と画像処理で使用する
XY座標組データです!
仮引数「int size」は、仮引数「TypeXYHV buf[],」の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★注意★XY座標組データをコノ関数SortY()で比較する
時はY座標の大小で比較し、Y座標が同じならばX座標の
大小で比較と二段階に成ります!
★備考★尚、構造体「TypeXYHV型」の座標を示す値は、
short型です!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-19)ソート関数「void SortX(
int sw,TypeXYHVIX buf[],int size);」
void SortX( // 配列ソート:TypeXYHVIX:X座標
int sw, // 0:昇順、 1:降順
TypeXYHVIX buf[], // バッファー
int size // バッファーサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeXYHVIX buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「TypeXYHVIX buf[],」は、一次元のデータ配列で
データの単位が「TypeXYHVIX型」と画像処理で使用する
XY座標組&範囲(水平垂直幅)&別データへのリンク用の
インデックスを含めた複合データです!
仮引数「int size」は、仮引数「TypeXYHVIX buf[],」の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★注意★XY座標組データをコノ関数SortX()で比較する
時はX座標の大小で比較し、X座標が同じならばY座標の
大小で比較と二段階に成ります!
★備考★尚、構造体「TypeXYHVIX型」の座標を示す値は、
short型です!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-20)ソート関数「void SortY(int sw,
TypeXYHVIX buf[],int size);」
void SortY( // 配列ソート:TypeXYHVIX:Y座標
int sw, // 0:昇順、 1:降順
TypeXYHVIX buf[], // バッファー
int size // バッファーサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeXYHVIX buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「TypeXYHVIX buf[],」は、一次元のデータ配列で
データの単位が「TypeXYHVIX型」と画像処理で使用する
XY座標組&範囲(水平垂直幅)&別データへのリンク用の
インデックスを含めた複合データです!
仮引数「int size」は、仮引数「TypeXYHVIX buf[],」の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★注意★XY座標組データをコノ関数SortY()で比較する
時はY座標の大小で比較し、Y座標が同じならばX座標の
大小で比較と二段階に成ります!
★備考★尚、構造体「TypeXYHVIX型」の座標を示す値は、
short型です!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-21)ソート関数「void SortArea(
int sw,TypeSf buf[],int size);」
void SortArea( // 配列ソート:TypeSf:面積ソート
int sw, // 0:昇順、 1:降順
TypeSf bufS[], // バッファー
int size // バッファーサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Area」は、英単語「範囲」を示しますが、ココでは面積の
値を意味します!詰り、面積の値で並べ替えを行います!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeSf buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「TypeSf buf[],」は、一次元のデータ配列で
データの単位が「TypeSf型」と画像計測結果で得られた各種
幾何学的情報≪フェレ情報や重心等の座標系・面積とかの
サイズ系等複合的な≫データです!
仮引数「int size」は、仮引数「TypeSf buf[],」の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★尚、構造体「TypeSf型」の面積を示す値は、
int型です!この「Sf」は、統計を示す英単語
「statistics」から「s」を機能とか関数を意味する
英単語「function」からとの意味の心算です画像計測で
得られた複数情報を統計的に処理出来る形で格納する
構造体「static TypeSf{}」をC言語上で作成し、
クラス「clasa TypeSf{}」で機能追加≪具体的には、
重心算出関数等をメソッドとして追加≫
そして、面積は画素数単位なので「int型」データとして
格納されていてこの面積でソートします!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-22)ソート関数「void SortArea(
int sw,TypeMB buf[],int size);」
void SortArea( // 配列ソート:TypeMB:面積ソート
int sw, // 0:昇順、 1:降順
TypeMB bufM[], // バッファー
int size // バッファーサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Area」は、英単語「Area」範囲を示しますが、ココでは、
面積の値を意味します!詰り、面積の値で並べ替えを行いま
す!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeMB buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「TypeMB buf[],」は、一次元のデータ配列で
データの単位が「TypeMB型」と画像計測結果で得られた各種
幾何学的情報≪フェレ情報や周囲長等極基本的な計測値≫
データです!
仮引数「int size」は、仮引数「TypeMB buf[],」の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★尚、構造体「TypeMB型」の面積を示す値は、
int型です!この「MB」は、計測を示す格納した
英単語「measurement」から「M」を複数の計測値つまり
ブロックを意味する英単語「block」で「B」からとの意味の
心算です画像計測で得られた複数情報を格納する
構造体「struct TypeMB{}」をクラス「class TypeSf{}」の
サブセット扱いです!
そして、面積は画素数単位なので「int型」データとして
格納されていてこの面積でソートします!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-23)ソート関数「int SortIndex(
int sw,BYTE bufkey[],short bufix[],int size);」
int SortIndex( // キー付ソート:BYTE
int sw, // 0:Key昇順、 1:Key降順
BYTE bufkey[], // キー部のバッファー
short bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Index」は、英単語「Index」索引(配列では添え字)
日本語でもインデックスを示しますが、ココでは並び変え
対象のキー配列とインデックス配列を連動して並べ替える
事を意味します!他のソート関数と同じように、キーの値で
並べ替えを行います!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「BYTE bufkey[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「BYTE bufkey[],」は、一次元のデータ配列で
データの単位が「BYTE型」と1バイト符号無し整数です!
仮引数「short bufix[],」は、一次元のデータ配列で
連動して並び替えられるインデックスの値を示します!
★注意★私が事ある毎に配列で無くポインタを推して居る
事は知って居ると思い違和感を感じた人も多いと思いますの
で説明します!ポインタでは、4バイト必要に成るからです
このインデックスの様にshort型2バイトで十分と判断した
からです!勿論、このサイズのインデックスで済む応用しか
使用して居ません!
仮引数「int size」は、仮引数「BYTE bufkey[],」等の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-24)ソート関数「int SortIndex(
int sw,short bufkey[],short bufix[],int size);」
int SortIndex( // キー付ソート:short
int sw, // 0:Key昇順、 1:Key降順
short bufkey[], // キー部のバッファー
short bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Index」は、英単語「Index」索引(配列では添え字)
日本語でもインデックスを示しますが、ココでは並び変え
対象のキー配列とインデックス配列を連動して並べ替える
事を意味します!他のソート関数と同じように、キーの値で
並べ替えを行います!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「short bufkey[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「short bufkey[],」は、一次元のデータ配列で
データの単位が「short型」と2バイト符号有り整数です!
仮引数「short bufix[],」は、一次元のデータ配列で連動し
て並び替えられるインデックスの値を示します!
★注意★私が事ある毎に配列で無くポインタを推して居る
事は知って居ると思い違和感を感じた人も多いと思いますの
で説明します!
ポインタでは、4バイト必要に成るからですこの
インデックスの様にshort型2バイトで十分と判断したから
です!
勿論、このサイズのインデックスで済む応用しか使用して
居ません!
仮引数「int size」は、仮引数「short bufkey[],」等の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-25)ソート関数「int SortIndex(
int sw,long bufkey[],short bufix[],int size);」
int SortIndex( // キー付ソート:long
int sw, // 0:Key昇順、 1:Key降順
long bufkey[], // キー部のバッファー
short bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Index」は、英単語「Index」索引(配列では添え字)
日本語でもインデックスを示しますが、ココでは並び変え
対象のキー配列とインデックス配列を連動して並べ替える
事を意味します!他のソート関数と同じように、キーの値で
並べ替えを行います!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「long bufkey[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「long bufkey[],」は、一次元のデータ配列で
データの単位が「long型」と4バイト符号有り整数です!
仮引数「short bufix[],」は、一次元のデータ配列で
連動して並び替えられるインデックスの値を示します!
★注意★私が事ある毎に配列で無くポインタを推して居る
事は知って居ると思い違和感を感じた人も多いと思いますの
で説明します!
ポインタでは、4バイト必要に成るからですこの
インデックスの様にshort型2バイトで十分と判断したから
です!
勿論、このサイズのインデックスで済む応用しか使用して
居ません!
仮引数「int size」は、仮引数「long bufkey[],」等の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-26)ソート関数「int SortIndex(
int sw,int bufkey[],short bufix[],int size);」
int SortIndex( // キー付ソート:long
int sw, // 0:Key昇順、 1:Key降順
int bufkey[], // キー部のバッファー
short bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Index」は、英単語「Index」索引(配列では添え字)
日本語でもインデックスを示しますが、ココでは並び変え
対象のキー配列とインデックス配列を連動して並べ替える
事を意味します!他のソート関数と同じように、キーの値で
並べ替えを行います!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「int bufkey[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「int bufkey[],」は、一次元のデータ配列で
データの単位が「int型」と4バイト符号有り整数です!
仮引数「short bufix[],」は、一次元のデータ配列で
連動して並び替えられるインデックスの値を示します!
★注意★私が事ある毎に配列で無くポインタを推して居る
事は知って居ると思い違和感を感じた人も多いと思いますの
で説明します!ポインタでは、4バイト必要に成るからです
このインデックスの様にshort型2バイトで十分と判断した
からです!勿論、このサイズのインデックスで済む応用しか
使用して居ません!
仮引数「int size」は、仮引数「int bufkey[],」等の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-27)ソート関数「int SortIndex(
int sw,float bufkey[],short bufix[],int size);」
int SortIndex( // キー付ソート:float
int sw, // 0:Key昇順、 1:Key降順
float bufkey[], // キー部のバッファー
short bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Index」は、英単語「Index」索引(配列では添え字)
日本語でもインデックスを示しますが、ココでは並び変え
対象のキー配列とインデックス配列を連動して並べ替える
事を意味します!他のソート関数と同じように、キーの値で
並べ替えを行います!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「float bufkey[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「floatbufkey[],」は、一次元のデータ配列で
データの単位が「float型」と4バイト単精度浮動小数点
数です!
仮引数「short bufix[],」は、一次元のデータ配列で
連動して並び替えられるインデックスの値を示します!
★注意★私が事ある毎に配列で無くポインタを推して居る
事は知って居ると思い違和感を感じた人も多いと思いますの
で説明します!ポインタでは、4バイト必要に成るからです
このインデックスの様にshort型2バイトで十分と判断した
からです!勿論、このサイズのインデックスで済む応用しか
使用して居ません!
仮引数「int size」は、仮引数「float bufkey[],」等の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-28)ソート関数「int SortIndex(
int sw,double bufkey[],short bufix[],int size);」
int SortIndex( // キー付ソート:double
int sw, // 0:Key昇順、 1:Key降順
double bufkey[], // キー部のバッファー
short bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Index」は、英単語「Index」索引(配列では添え字)
日本語でもインデックスを示しますが、ココでは並び変え
対象のキー配列とインデックス配列を連動して並べ替える
事を意味します!他のソート関数と同じように、キーの値で
並べ替えを行います!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「double bufkey[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「double bufkey[],」は、一次元のデータ配列で
データの単位が「double 型」と8バイト倍精度浮動小数点
数です!
仮引数「short bufix[],」は、一次元のデータ配列で連動
して並び替えられるインデックスの値を示します!
★注意★私が事ある毎に配列で無くポインタを推して居る
事は知って居ると思い違和感を感じた人も多いと思いますの
で説明します!ポインタでは、4バイト必要に成るからです
このインデックスの様にshort型2バイトで十分と判断した
からです!
勿論、このサイズのインデックスで済む応用しか使用して
居ません!
仮引数「int size」は、仮引数「double bufkey[],」等の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-29)ソート関数「int SortIndex(
int sw,__int64 bufkey[],short bufix[],int size);」
int SortIndex( // キー付ソート:64Bit整数
int sw, // 0:Key昇順、 1:Key降順
__int64 bufkey[], // キー部のバッファー
short bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Index」は、英単語「Index」索引(配列では添え字)
日本語でもインデックスを示しますが、ココでは並び変え
対象のキー配列とインデックス配列を連動して並べ替える
事を意味します!他のソート関数と同じように、キーの値で
並べ替えを行います!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「__int64 bufkey[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「__int 64bufkey[],」は、一次元のデータ配列で
データの単位が「__int 64型」と8バイト詰まり64ビット
整数値です!仮引数「short bufix[],」は、一次元のデータ
配列で連動して並び替えられるインデックスの値を示し
ます!
★注意★私が事ある毎に配列で無くポインタを推して居る
事は知って居ると思い違和感を感じた人も多いと思いますの
で説明します!ポインタでは、4バイト必要に成るからです
このインデックスの様にshort型2バイトで十分と判断した
からです!勿論、このサイズのインデックスで済む応用しか
使用して居ません!
仮引数「int size」は、仮引数「__int64 bufkey[],」等の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-30)ソート関数「int SortIndex(
int sw,BYTE bufkey[],int bufix[],int size);」
int SortIndex( // キー付ソート:BYTE
int sw, // 0:Key昇順、 1:Key降順
BYTE bufkey[], // キー部のバッファー
int bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Index」は、英単語「Index」索引(配列では添え字)
日本語でもインデックスを示しますが、ココでは並び変え
対象のキー配列とインデックス配列を連動して並べ替える
事を意味します!他のソート関数と同じように、キーの値で
並べ替えを行います!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「BYTE bufkey[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「BYTE bufkey[],」は、一次元のデータ配列で
データの単位が「BYTE型」と1バイト符号無し整数です!
仮引数「int bufix[],」は、一次元のデータ配列で
連動して並び替えられるインデックスの値を示します!
★注意★ここでint型4バイト整数型に変えたのは、
ソートするデータ数が16ビットに収まらない、具体的には
32767を越える数量の場合です!
数量が多く成った場合の関数なので遅くても正常に動く方を
優先したからです!
仮引数「int size」は、仮引数「BYTE bufkey[],」等の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-31)ソート関数「int SortIndex(
int sw,short bufkey[],int bufix[],int size);」
int SortIndex( // キー付ソート:short
int sw, // 0:Key昇順、 1:Key降順
short bufkey[], // キー部のバッファー
int bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Index」は、英単語「Index」索引(配列では添え字)
日本語でもインデックスを示しますが、ココでは並び変え
対象のキー配列とインデックス配列を連動して並べ替える
事を意味します!他のソート関数と同じように、キーの値で
並べ替えを行います!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「short bufkey[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「short bufkey[],」は、一次元のデータ配列で
データの単位が「short型」と2バイト符号有り整数です!
仮引数「int bufix[],」は、一次元のデータ配列で
連動して並び替えられるインデックスの値を示します!
★注意★ここでint型4バイト整数型に変えたのは、
ソートするデータ数が16ビットに収まらない、具体的には
32767を越える数量の場合です!数量が多く成った
場合の関数なので遅くても正常に動く方を優先したからで
す!
仮引数「int size」は、仮引数「short bufkey[],」等の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-32)ソート関数「int SortIndex(
int sw,long bufkey[],int bufix[],int size);」
int SortIndex( // キー付ソート:long
int sw, // 0:Key昇順、 1:Key降順
long bufkey[], // キー部のバッファー
int bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Index」は、英単語「Index」索引(配列では添え字)
日本語でもインデックスを示しますが、ココでは並び変え
対象のキー配列とインデックス配列を連動して並べ替える
事を意味します!他のソート関数と同じように、キーの値で
並べ替えを行います!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「long bufkey[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「long bufkey[],」は、一次元のデータ配列で
データの単位が「long型」と4バイト符号有り整数です!
仮引数「int bufix[],」は、一次元のデータ配列で
連動して並び替えられるインデックスの値を示します!
★注意★ここでint型4バイト整数型に変えたのは、
ソートするデータ数が16ビットに収まらない、具体的には
32767を越える数量の場合です!
数量が多く成った場合の関数なので遅くても正常に動く方を
優先したからです!
仮引数「int size」は、仮引数「long bufkey[],」等の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-33)ソート関数「int SortIndex(
int sw,int bufkey[],int bufix[],int size);」
int SortIndex( // キー付ソート:long
int sw, // 0:Key昇順、 1:Key降順
int bufkey[], // キー部のバッファー
int bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Index」は、英単語「Index」索引(配列では添え字)
日本語でもインデックスを示しますが、ココでは並び変え
対象のキー配列とインデックス配列を連動して並べ替える
事を意味します!他のソート関数と同じように、キーの値で
並べ替えを行います!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「int bufkey[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「int bufkey[],」は、一次元のデータ配列で
データの単位が「int型」と4バイト符号有り整数です!
仮引数「int bufix[],」は、一次元のデータ配列で
連動して並び替えられるインデックスの値を示します!
★注意★ここでint型4バイト整数型に変えたのは、
ソートするデータ数が16ビットに収まらない、具体的には
32767を越える数量の場合です!
数量が多く成った場合の関数なので遅くても正常に動く方を
優先したからです!
仮引数「int size」は、仮引数「int bufkey[],」等の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-34)ソート関数「int SortIndex(
int sw,float bufkey[],int bufix[],int size);」
int SortIndex( // キー付ソート:float
int sw, // 0:Key昇順、 1:Key降順
float bufkey[], // キー部のバッファー
int bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Index」は、英単語「Index」索引(配列では添え字)
日本語でもインデックスを示しますが、ココでは並び変え
対象のキー配列とインデックス配列を連動して並べ替える
事を意味します!他のソート関数と同じように、キーの値で
並べ替えを行います!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「float bufkey[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「float bufkey[],」は、一次元のデータ配列で
データの単位が「float型」と4バイト単精度浮動小数点数
です!
仮引数「int bufix[],」は、一次元のデータ配列で
連動して並び替えられるインデックスの値を示します!
★注意★ここでint型4バイト整数型に変えたのはソート
するデータ数が16ビットに収まらない、具体的には
32767を越える数量の場合です!
数量が多く成った場合の関数なので遅くても正常に動く方を
優先したからです!
仮引数「int size」は、仮引数「float bufkey[],」等の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-35)ソート関数「int SortIndex(
int sw,double bufkey[],int bufix[],int size);」
int SortIndex( // キー付ソート:double
int sw, // 0:Key昇順、 1:Key降順
double bufkey[], // キー部のバッファー
int bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Index」は、英単語「Index」索引(配列では添え字)
日本語でもインデックスを示しますが、ココでは並び変え
対象のキー配列とインデックス配列を連動して並べ替える
事を意味します!他のソート関数と同じように、キーの値で
並べ替えを行います!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「double bufkey[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが、
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「double bufkey[],」は、一次元のデータ配列で
データの単位が「double 型」と8バイト倍精度浮動小数点
数です!
仮引数「int bufix[],」は、一次元のデータ配列で連動して
並び替えられるインデックスの値を示します!
★注意★ここでint型4バイト整数型に変えたのは、
ソートするデータ数が16ビットに収まらない、具体的には
32767を越える数量の場合です!
数量が多く成った場合の関数なので遅くても正常に動く方を
優先したからです!
仮引数「int size」は、仮引数「double bufkey[],」等の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-36)ソート関数「int SortIndex(
int sw,__int64 bufkey[],int bufix[],int size);」
int SortIndex( // キー付ソート:64Bit整数
int sw, // 0:Key昇順、 1:Key降順
__int64 bufkey[], // キー部のバッファー
int bufix[], // 添字部のバッファー
int size // バッファーのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Index」は、英単語「Index」索引(配列では添え字)
日本語でもインデックスを示しますが、ココでは並び変え
対象のキー配列とインデックス配列を連動して並べ替える
事を意味します!他のソート関数と同じように、キーの値で
並べ替えを行います!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「__int 64buf key[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「__int64 bufkey[],」は、一次元のデータ配列で
データの単位が「__int 64型」と8バイト詰まり64ビット
整数値です!
仮引数「int bufix[],」は、一次元のデータ配列で
連動して並び替えられるインデックスの値を示します!
★注意★ここでint型4バイト整数型に変えたのは、
ソートするデータ数が16ビットに収まらない、具体的には
32767を越える数量の場合です!数量が多く成った場合
の関数なので遅くても正常に動く方を優先したからです!
仮引数「int size」は、仮引数「__int64 bufkey[],」等の
配列のサイズです!このサイズ分のデータをソーティング
(並べ替え)します!
★備考★基本的なアルゴリズム≪採用した方法は、この当時
最強と考えた「クイックソート」です!今でも最強と思って
います≫は、この関数で使用したアルゴリズムが他の関数で
も採用されている方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-37)関数「int SortCopy(
TypeArray* pa,int n,short bufix[],int offset,int l);」
int SortCopy( // ソート後添え字で並び替え
TypeArray *pa, // 配列1~10の情報
int n, // 配列の個数 0..99
short bufix[], // 添字部のBuffer
int offset, // 先頭からのOffset
int l // 配列の最小大きさ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
関数「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「short bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「TypeArray* pa,」は、画像では無く一次元配列を
しかも複数指定できる事を目的
★注意★元々、ADS社画像処理装置に搭載した
インタプリタ言語PIPLで配列データを使う為の仕組みと
して構造体「TypeArray* 」を使用していた名残です!
★備考★PIPLも私の計画としては、新しく画像処理専用
言語として発表する心算ですので乞うご期待と記載して置き
ます!
ポインタでデータ配列が有る事は理解していると思いますが
その配列が何組あるかを示す数が、この「int n」です!
仮引数「int n」は、仮引数「TypeArray* pa,」で示される
仮引数「short bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
仮引数「int offset,」は、インデックス配列に依って並べ
替えるデータ配列【仮引数「TypeArray* pa,」で示した実体
から必要なオフセットずらす事が出来る様に設定】出来る
ようにした物です!
仮引数「int l」は、インデックス配列に依って並べ替える
データ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-38)関数「int SortCopy(
BYTE buf[],short bufix[],int size);」
int SortCopy( // Sort後添字で並び替え:BYTE
BYTE buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「short bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「BYTE buf[],」は、処理対象一次元配列を示し
ます!
今回データ配列は、「BYTE型」1バイト符号無しです!
仮引数「short bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
仮引数「int size」は、インデックス配列に依って並べ
替えるデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-44)関数「int SortCopy(
short buf[],short bufix[],int size);」
int SortCopy( // Sort後添字で並替え:short
short buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「short bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「short buf[],」は、処理対象一次元配列を示しま
す!
今回データ配列は、「short型」2バイト符号有りです!
仮引数「short bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
仮引数「int size」は、インデックス配列に依って並べ替
えるデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-40)関数「int SortCopy(
int buf[],short bufix[],int size);」
int SortCopy( // Sort後添字で並び替え:int
int buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「short bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「int buf[],」は、処理対象一次元配列を示します!
今回データ配列は、「int型」4バイト符号有りです!
仮引数「short bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
仮引数「int size」は、インデックス配列に依って並べ替
えるデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-41)関数「int SortCopy(
float buf[],short bufix[],int size);」
int SortCopy( // Sort後添字で並び替え:float
float buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「short bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「floatbuf[],」は、処理対象一次元配列を示します!
今回データ配列は、「float型」4バイト単精度浮動小数点
数です!
仮引数「short bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
仮引数「int size」は、インデックス配列に依って並べ替
えるデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-42)関数「int SortCopy(
double buf[],short bufix[],int size);」
int SortCopy( // Sort後添字で並替:double
double buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「short bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「double buf[],」は、処理対象一次元配列を示し
ます!今回データ配列は、「double 型」8バイト倍精度
浮動小数点数です!
仮引数「short bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
仮引数「int size」は、インデックス配列に依って並べ替
えるデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-43)関数「int SortCopy(
__int64 buf[],short bufix[],int size);」
int SortCopy( // Sort後添字で並替:64Bit整数
__int64 buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「short bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「__int64 buf[],」は、処理対象一次元配列を示し
ます!今回データ配列は、「__int64型」8バイト符号有り
です!
仮引数「short bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
仮引数「int size」は、インデックス配列に依って並べ替え
るデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-44)関数「int SortCopy(
void *buf[],short bufix[],int size);」
int SortCopy( // Sort後添字で並替:void*
void* buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「short bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「void *buf[],」は、処理対象一次元配列を示し
ます!今回データ配列は、「void *型」任意ポインタを
格納した物!
仮引数「short bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
仮引数「int size」は、インデックス配列に依って並べ替
えるデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-45)関数「int SortCopy(
TypeXY buf[],short bufix[],int size);」
int SortCopy( // Sort後添字で並替:TypeXY
TypeXY buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「short bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「TypeXY buf[],」は、処理対象一次元配列を
示します!
今回データ配列は、「TypeXY 型」を格納した物!
仮引数「short bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
仮引数「int size」は、インデックス配列に依って並べ替
えるデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-46)関数「int SortCopy(
TypeXYI buf[],short bufix[],int size);」
int SortCopy( // Sort後添字で並替:TypeXYI
TypeXYI buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「short bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「TypeXYI buf[],」は、処理対象一次元配列を示し
ます!今回データ配列は、「TypeXYI型」を格納した物!
仮引数「short bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
仮引数「int size」は、インデックス配列に依って並べ替え
るデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-47)関数「int SortCopy(
TypeXYHV buf[],short bufix[],int size);」
int SortCopy( // Sort後添字で並替:TypeXYHV
TypeXYHV buf[], // 並び替え対象
short bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「short bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「TypeXYHV buf[],」は、処理対象一次元配列を示し
ます!今回データ配列は、「TypeXYHV型」を格納した物!
仮引数「short bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
仮引数「int size」は、インデックス配列に依って並べ替え
るデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-48)関数「int SortCopy(
TypeArray* pa,int n,int bufix[],int offset,int l);」
int SortCopy( // ソート後添え字で並び替え
TypeArray *pa, // 配列1~10の情報
int n, // 配列の個数 0..99
int bufix[], // 添字部のBuffer
int offset, // 先頭からのOffset
int l // 配列の最小大きさ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「int bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「TypeArray* pa,」は、画像では無く一次元配列を
しかも複数指定できる事を目的★注意★元々、ADS社画像
処理装置に搭載したインタプリタ言語PIPLで配列データ
を使う為の仕組みとして構造体「TypeArray* 」を使用して
いた名残です!
★備考★PIPLも私の計画としては、新しく画像処理専用
言語として発表する心算ですので乞うご期待と記載して置き
ます!
ポインタでデータ配列が有る事は理解していると思いますが
その配列が何組あるかを示す数が、この「int n」です!
仮引数「int n」は、仮引数「TypeArray* pa,」で示される
仮引数「int bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
★備考★型を「int型」配列にして居るのは、インデックス
配列のサイズが32767を超えているからです!
仮引数「int offset,」は、インデックス配列に依って並べ
替えるデータ配列【仮引数「TypeArray* pa,」で示した実体
から必要なオフセットずらす事が出来る様に設定】出来る
ようにした物です!
仮引数「int l」は、インデックス配列に依って並べ替える
データ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-49)関数「int SortCopy(
BYTE buf[],int bufix[],int size);」
int SortCopy( // Sort後添字で並び替え:BYTE
BYTE buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「int bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「BYTE buf[],」は、処理対象一次元配列を示し
ます!今回データ配列は、「BYTE型」1バイト符号無し
です!
仮引数「int bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
★備考★型を「int型」配列にして居るのは、インデックス
配列のサイズが32767を超えているからです!
仮引数「int size」は、インデックス配列に依って並べ替
えるデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-50)関数「int SortCopy(
short buf[],int bufix[],int size);」
int SortCopy( // Sort後添字で並替え:short
short buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「int bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「short buf[],」は、処理対象一次元配列を示し
ます!今回データ配列は、「short型」2バイト符号有り
です!
仮引数「int bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
★備考★型を「int型」配列にして居るのは、インデックス
配列のサイズが32767を超えているからです!
仮引数「int size」は、インデックス配列に依って並べ替
えるデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-51)関数「int SortCopy(
int buf[],int bufix[],int size);」
int SortCopy( // Sort後添字で並び替え:int
int buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「int bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「int buf[],」は、処理対象一次元配列を示します!
今回データ配列は、「int型」4バイト符号有りです!
仮引数「int bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
★備考★型を「int型」配列にして居るのは、インデックス
配列のサイズが32767を超えているからです!
仮引数「int size」は、インデックス配列に依って並べ替え
るデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-52)関数「int SortCopy(
float buf[],int bufix[],int size);」
int SortCopy( // Sort後添字で並び替え:float
float buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「int bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「float buf[],」は、処理対象一次元配列を示します!
今回データ配列は、「float型」4バイト単精度浮動小数点
数です!
仮引数「int bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
★備考★型を「int型」配列にして居るのは、インデックス
配列のサイズが32767を超えているからです!
仮引数「int size」は、インデックス配列に依って並べ替
えるデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-53)関数「int SortCopy(
double buf[],int bufix[],int size);」
int SortCopy( // Sort後添字で並替:double
double buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「int bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「double buf[],」は、処理対象一次元配列を示し
ます!今回データ配列は、「double 型」8バイト倍精度
浮動小数点数です!
仮引数「int bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
★備考★型を「int型」配列にして居るのは、インデックス
配列のサイズが32767を超えているからです!
仮引数「int size」は、インデックス配列に依って並べ替え
るデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-54)関数「int SortCopy(
__int64 buf[],int bufix[],int size);」
int SortCopy( // Sort後添字で並替:64Bit整数
__int64 buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「int bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「__int64 buf[],」は、処理対象一次元配列を示し
ます!今回データ配列は、「__int64型」8バイト符号有り
です!
仮引数「int bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
★備考★型を「int型」配列にして居るのは、インデックス
配列のサイズが32767を超えているからです!
仮引数「int size」は、インデックス配列に依って並べ替え
るデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-55)関数「int SortCopy(
void *buf[],int bufix[],int size);」
int SortCopy( // Sort後添字で並替:void*
void* buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「int bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「void *buf[],」は、処理対象一次元配列を示し
ます!今回データ配列は、「void *型」任意ポインタを格納
した物!
仮引数「int bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
★備考★型を「int型」配列にして居るのは、インデックス
配列のサイズが32767を超えているからです!
仮引数「int size」は、インデックス配列に依って並べ替え
るデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-56)関数「int SortCopy(
TypeXY buf[],int bufix[],int size);」
int SortCopy( // Sort後添字で並替:TypeXY
TypeXY buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「int bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「TypeXY buf[],」は、処理対象一次元配列を示し
ます!今回データ配列は、「TypeXY 型」を格納した物!
仮引数「int bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
★備考★型を「int型」配列にして居るのは、インデックス
配列のサイズが32767を超えているからです!
仮引数「int size」は、インデックス配列に依って並べ替え
るデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-57)関数「int SortCopy(
TypeXYI buf[],int bufix[],int size);」
int SortCopy( // Sort後添字で並替:TypeXYI
TypeXYI buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「int bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「TypeXY Ibuf[],」は、処理対象一次元配列を示し
ます!今回データ配列は、「TypeXY I型」を格納した物!
仮引数「int bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
★備考★型を「int型」配列にして居るのは、インデックス
配列のサイズが32767を超えているからです!
仮引数「int size」は、インデックス配列に依って並べ替え
るデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-58)関数「int SortCopy(
TypeXYHV buf[],int bufix[],int size);」
int SortCopy( // Sort後添字で並替:TypeXYHV
TypeXYHV buf[], // 並び替え対象
int bufix[], // 添字部Bufferのptr
int size // Bufferのサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Copy」は、コピーですが、ココでは、直前に解説した
ソート関数「int SortIndex()」で仮引数「int bufix[]」
でインデックス配列がソートサレテいる事を利用して紐付け
ていたデータ配列をソート(並べ替え)しながらコピーする
関数だと考えて下さい!
仮引数「TypeXYHV buf[],」は、処理対象一次元配列を示し
ます!今回データ配列は、「TypeXY HV型」を格納した物!
仮引数「int bufix[]」は、一次元のデータ配列でソート
関数「int SortIndex()」でキーデータでソートした時の
連動インデックスに成っているソート済みのインデックス
配列を実引数としてセットする事にして居ます!
★備考★型を「int型」配列にして居るのは、インデックス
配列のサイズが32767を超えているからです!
仮引数「int size」は、インデックス配列に依って並べ替え
るデータ配列長さの指定です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-59)関数「void SortUpdate(int sw,
BYTE buf[],int size,int d);」
void SortUpdate( // ソート(1Data更新):BYTE
int sw, // 0:昇順、 1:降順
BYTE buf[], // バッファー
int size, // バッファーサイズ
int d ); // データ
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「BYTE buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えス
イッチを置く事にしました!
「Update」は、英単語「Update」で「・・を最新のものにす
る」です!
と言う訳でこの関数は、ソート済みの配列に新しいデータを
加える「最新の物にする・更新する」関数です!
仮引数「BYTE buf[],」は、更新対象のデータ配列です!
ここでは、「BYTE型」1バイト符号無し整数データ!
仮引数「int size,」は、データ配列のサイズです!
仮引数「int d」は、更新データです!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-60)関数「void SortUpdate(int sw,
short buf[],int size,int d);」
void SortUpdate( // ソート(1Data更新):short
int sw, // 0:昇順、 1:降順
short buf[], // バッファー
int size, // バッファーサイズ
int d ); // データ
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「short buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
「Update」は、英単語「Update」で「・・を最新のものにす
る」です!
と言う訳でこの関数は、ソート済みの配列に新しいデータを
加える「最新の物にする・更新する」関数です!
仮引数「short buf[],」は、更新対象のデータ配列です!
ここでは、「short型」2バイト符号有り整数データ!
仮引数「int size,」は、データ配列のサイズです!
仮引数「int d」は、更新データです!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-61)関数「void SortUpdate(int sw,
int buf[],int size,int d);」
void SortUpdate( // ソート(1Data更新):int
int sw, // 0:昇順、 1:降順
int buf[], // バッファー
int size, // バッファーサイズ
int d ); // データ
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「int buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
「Update」は、英単語「Update」で「・・を最新のものにす
る」です!
と言う訳でこの関数は、ソート済みの配列に新しいデータを
加える「最新の物にする・更新する」関数です!
仮引数「int buf[],」は、更新対象のデータ配列です!
ここでは、「int型」4バイト符号有り整数データ!
仮引数「int size,」は、データ配列のサイズです!
仮引数「int d」は、更新データです!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-62)関数「void SortUpdate(int sw,
float buf[],int size,double d);」
void SortUpdate( // ソート(1Data更新):float
int sw, // 0:昇順、 1:降順
float buf[], // バッファー
int size, // バッファーサイズ
double d ); // データ
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「float buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
「Update」は、英単語「Update」で「・・を最新のものにす
る」です!と言う訳でこの関数は、ソート済みの配列に新し
いデータを加える「最新の物にする・更新する」関数です!
仮引数「float buf[],」は、更新対象のデータ配列です!
ここでは、「float型」4バイト単精度浮動小数点データ!
仮引数「int size,」は、データ配列のサイズです!
仮引数「double d」は、更新データです!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-63)関数「void SortUpdate(int sw,
double buf[],int size,double d);」
void SortUpdate( // ソート(1Data更新):double
int sw, // 0:昇順、 1:降順
double buf[], // バッファー
int size, // バッファーサイズ
double d ); // データ
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「double buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
「Update」は、英単語「Update」で「・・を最新のものにす
る」です!
と言う訳でこの関数は、ソート済みの配列に新しいデータを
加える「最新の物にする・更新する」関数です!
仮引数「double buf[],」は、更新対象のデータ配列です!
ここでは、「double 型」8バイト倍精度浮動小数点
データ!
仮引数「int size,」は、データ配列のサイズです!
仮引数「double d」は、更新データです!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-64)関数「void SortUpdate(int sw,
TypeCorr buf[],int size,double d,int x,int y);」
void SortUpdate( // ソート(1Data更新):TypeCorr
int sw, // 0:昇順、 1:降順
TypeCorr buf[], // バッファー
int size, // バッファーサイズ
double d, // データ
int x, // X座標
int y ); // Y座標
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「double buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
「Update」は、英単語「Update」で「・・を最新のものにす
る」です!
と言う訳でこの関数は、ソート済みの配列に新し
いデータを加える「最新の物にする・更新する」関数です!
仮引数「TypeCorrbuf[],」は、更新対象のデータ配列です!
ここでは、「TypeCorr型」正規相関用データです!
仮引数「int size,」は、データ配列のサイズです!
仮引数「double d,」及び、
仮引数「int x,」と
仮引数「int y」とで、正規相関「TypeCorr型」のそれぞれ
メンバー変数の値で更新データです!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-65)関数「void SortMerge(int sw,
BYTE buf1[],BYTE buf2[],BYTE buf[],
int size1,int size2);」
void SortMerge( // ソート(併合):BYTE
int sw, // 0:昇順、 1:降順
BYTE buf1[], // バッファー:1
BYTE buf2[], // バッファー:2
BYTE buf[], // バッファー:格納先
int size1, // バッファーサイズ:1
int size2 ); // バッファーサイズ:2
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Merge」は、英単語「Merge」で合併する・併合する・
既に日本語的にマージとカタカナ言葉にも成って居る?!
★注意★ソーティングとしてマージソートを使用する時は、
大昔、コンピューターの外付け記憶装置が、磁気テープ≪
現在、家庭用のVTR(ビデオ・テープ・レコーダー)すら
過去の物に成って居るので更に前の音楽テープ・レコーダー
(初代のウォークマンも携帯可能なテープレコーダーとして
開発)とアナログの音楽や映像を記憶する装置にも馴染みが
無い人が多いと思いますが、コンピューターの補助記憶装置
としては、現在、バックアップ用途として未だに現役で使用
されている記憶装置です≫が主だった時に良く使われたソー
ティング技法です?!テープですのでデータはシーケンシャ
ルに前の方から順番にアクセスするのが記憶装置の使い方で
有る事は理解して頂きたい!その為、半導体メモリーの様に
ランダムアクセス≪任意に自由な場所をアクセス≫が、出来
ない為に前から順にデータを読みだすか、順に書き込むかし
か無いと不自由な操作が求められます!この環境下で効率良
く、ソーティングが出来るのが、マージソートです!
前提として2本のソーティング済みのデータ列が2本≪磁気
テープだと物理的にソーティング済みのデータが入っている
物が2本で半導体メモリーで行う場合、2本のデータ配列が
ソーティング済みと言う事です!≫有る事が、必要でコノ
関数「SortMerge()」は、2本のデータ配列から、新しく
2本のデータを合わせた(マージ)した結果データ配列≪
★備考★多分、勘の鋭い人は、結果の配列は2本のデータが
収まるサイズが必要と思われたと思います!
その通り、結果として格納される配列【ここでは、
仮引数「BYTE buf[]」に対応する実引数で示される配列領域
】≫を用意する必要が有ります!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「double buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「BYTE buf1[],」は、マージ対象の配列1本目です!
勿論、データは、仮引数「int sw,」で示された
昇順/降順に従ったソート済みで有る事が必要です!
仮引数「BYTE buf2[],」は、マージ対象の配列2本目です!
勿論、データは、仮引数「int sw,」で示された
昇順/降順に従ったソート済みで有る事が必要です!
仮引数「BYTE buf[],」は、ソート結果を格納する配列です
サイズは、仮引数「BYTE buf1[],BYTE buf2[],」両方が格納
されるサイズ対応する実引数の領域が必要です!
仮引数「int size1,」は、仮引数「BYTE buf1[],」の
サイズです!
仮引数「int size2」は、仮引数「BYTE buf2[],」の
サイズです!
★備考★この関数は、データ数が極めて大きい時の用途に
使用する方法です!予め、中身がソーティングされて無い
大きなデータ配列を小分けにして前述したソート関数
「sort();」等アルゴリズムとしてクイックソートを使用し
たソートを使用してソートしたデータ配列をココの関数
「SortMerge()」でマージして1本のソート済みデータ配列
にする事が出来ます!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-66)関数「void SortMerge(int sw,
short buf1[],short buf2[],short buf[],
int size1,int size2);」
void SortMerge( // ソート(併合):short
int sw, // 0:昇順、 1:降順
short buf1[], // バッファー:1
short buf2[], // バッファー:2
short buf[], // バッファー:格納先
int size1, // バッファーサイズ:1
int size2 ); // バッファーサイズ:2
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Merge」は、英単語「Merge」で合併する・併合する・
既に日本語的にマージとカタカナ言葉にも成って居る?!
★注意★ソーティングとしてマージソートを使用する時は、
大昔、コンピューターの外付け記憶装置が、磁気テープ≪
現在、家庭用のVTR(ビデオ・テープ・レコーダー)すら
過去の物に成って居るので更に前の音楽テープ・レコーダー
(初代のウォークマンも携帯可能なテープレコーダーとして
開発)とアナログの音楽や映像を記憶する装置にも馴染みが
無い人が多いと思いますが、コンピューターの補助記憶装置
としては、現在、バックアップ用途として未だに現役で使用
されている記憶装置です≫が主だった時に良く使われたソー
ティング技法です?!テープですのでデータはシーケンシャ
ルに前の方から順番にアクセスするのが記憶装置の使い方で
有る事は理解して頂きたい!その為、半導体メモリーの様に
ランダムアクセス≪任意に自由な場所をアクセス≫が、出来
ない為に前から順にデータを読みだすか、順に書き込むかし
か無いと不自由な操作が求められます!この環境下で効率良
く、ソーティングが出来るのが、マージソートです!
前提として2本のソーティング済みのデータ列が2本≪磁気
テープだと物理的にソーティング済みのデータが入っている
物が2本で半導体メモリーで行う場合、2本のデータ配列が
ソーティング済みと言う事です!≫有る事が、必要でコノ
関数「SortMerge()」は、2本のデータ配列から、新しく
2本のデータを合わせた(マージ)した結果データ配列≪
★備考★多分、勘の鋭い人は、結果の配列は2本のデータが
収まるサイズが必要と思われたと思います!その通り、結果
として格納される配列【ここでは、
仮引数「short buf[]」に対応する実引数で示される配列
領域】≫を用意する必要が有ります!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「double buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「short buf1[],」は、マージ対象の配列1本目
です!
勿論、データは、仮引数「int sw,」で示された
昇順/降順に従ったソート済みで有る事が必要です!
仮引数「short buf2[],」は、マージ対象の配列2本目
です!
勿論、データは、仮引数「int sw,」で示された
昇順/降順に従ったソート済みで有る事が必要です!
仮引数「short buf[],」は、ソート結果を格納する配列
です、サイズは、仮引数「short buf1[],short buf2[],」
両方が格納されるサイズ対応する実引数の領域が必要です!
仮引数「int size1,」は、仮引数「short buf1[],」の
サイズ
です!
仮引数「int size2」は、仮引数「short buf2[],」の
サイズです!
★備考★この関数は、データ数が極めて大きい時の用途に
使用する方法です!予め、中身がソーティングされて無い
大きなデータ配列を小分けにして前述したソート関数
「sort();」等アルゴリズムとしてクイックソートを使用し
たソートを使用してソートしたデータ配列をココの関数
「SortMerge()」でマージして1本のソート済みデータ配列
にする事が出来ます!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-67)関数「void SortMerge(int sw,
int buf1[],int buf2[],int buf[],
int size1,int size2);」
void SortMerge( // ソート(併合):int
int sw, // 0:昇順、 1:降順
int buf1[], // バッファー:1
int buf2[], // バッファー:2
int buf[], // バッファー:格納先
int size1, // バッファーサイズ:1
int size2 ); // バッファーサイズ:2
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Merge」は、英単語「Merge」で合併する・併合する・
既に日本語的にマージとカタカナ言葉にも成って居る?!
★注意★ソーティングとしてマージソートを使用する時は、
大昔、コンピューターの外付け記憶装置が、磁気テープ≪
現在、家庭用のVTR(ビデオ・テープ・レコーダー)すら
過去の物に成って居るので更に前の音楽テープ・レコーダー
(初代のウォークマンも携帯可能なテープレコーダーとして
開発)とアナログの音楽や映像を記憶する装置にも馴染みが
無い人が多いと思いますが、コンピューターの補助記憶装置
としては、現在、バックアップ用途として未だに現役で使用
されている記憶装置です≫が主だった時に良く使われたソー
ティング技法です?!テープですのでデータはシーケンシャ
ルに前の方から順番にアクセスするのが記憶装置の使い方で
有る事は理解して頂きたい!その為、半導体メモリーの様に
ランダムアクセス≪任意に自由な場所をアクセス≫が、出来
ない為に前から順にデータを読みだすか、順に書き込むかし
か無いと不自由な操作が求められます!この環境下で効率良
く、ソーティングが出来るのが、マージソートです!
前提として2本のソーティング済みのデータ列が2本≪磁気
テープだと物理的にソーティング済みのデータが入っている
物が2本で半導体メモリーで行う場合、2本のデータ配列が
ソーティング済みと言う事です!≫有る事が、必要でコノ
関数「SortMerge()」は、2本のデータ配列から、新しく
2本のデータを合わせた(マージ)した結果データ配列≪
★備考★多分、勘の鋭い人は、結果の配列は2本のデータが
収まるサイズが必要と思われたと思います!その通り、結果
として格納される配列【ここでは、仮引数「int buf[]」に
対応する実引数で示される配列領域】≫を用意する必要が有
ります!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「double buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「int buf1[],」は、マージ対象の配列1本目です!
勿論、データは、仮引数「int sw,」で示された
昇順/降順に従ったソート済みで有る事が必要です!
仮引数「int buf2[],」は、マージ対象の配列2本目です!
勿論、データは、仮引数「int sw,」で示された
昇順/降順に従ったソート済みで有る事が必要です!
仮引数「int buf[],」は、ソート結果を格納する配列です
サイズは、仮引数「int buf1[],int buf2[],」両方が格納
されるサイズ対応する実引数の領域が必要です!
仮引数「int size1,」は、仮引数「int buf1[],」のサイズ
です!
仮引数「int size2」は、仮引数「int buf2[],」のサイズ
です!
★備考★この関数は、データ数が極めて大きい時の用途に
使用する方法です!予め、中身がソーティングされて無い
大きなデータ配列を小分けにして前述したソート関数
「sort();」等アルゴリズムとしてクイックソートを使用し
たソートを使用してソートしたデータ配列をココの関数
「SortMerge()」でマージして1本のソート済みデータ配列
にする事が出来ます!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-68)関数「void SortMerge(int sw,
float buf1[],float buf2[],floatbuf[],
int size1,int size2);」
void SortMerge( // ソート(併合):float
int sw, // 0:昇順、 1:降順
float buf1[], // バッファー:1
float buf2[], // バッファー:2
float buf[], // バッファー:格納先
int size1, // バッファーサイズ:1
int size2 ); // バッファーサイズ:2
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Merge」は、英単語「Merge」で合併する・併合する・
既に日本語的にマージとカタカナ言葉にも成って居る?!
★注意★ソーティングとしてマージソートを使用する時は、
大昔、コンピューターの外付け記憶装置が、磁気テープ≪
現在、家庭用のVTR(ビデオ・テープ・レコーダー)すら
過去の物に成って居るので更に前の音楽テープ・レコーダー
(初代のウォークマンも携帯可能なテープレコーダーとして
開発)とアナログの音楽や映像を記憶する装置にも馴染みが
無い人が多いと思いますが、コンピューターの補助記憶装置
としては、現在、バックアップ用途として未だに現役で使用
されている記憶装置です≫が主だった時に良く使われたソー
ティング技法です?!テープですのでデータはシーケンシャ
ルに前の方から順番にアクセスするのが記憶装置の使い方で
有る事は理解して頂きたい!その為、半導体メモリーの様に
ランダムアクセス≪任意に自由な場所をアクセス≫が、出来
ない為に前から順にデータを読みだすか、順に書き込むかし
か無いと不自由な操作が求められます!この環境下で効率良
く、ソーティングが出来るのが、マージソートです!
前提として2本のソーティング済みのデータ列が2本≪磁気
テープだと物理的にソーティング済みのデータが入っている
物が2本で半導体メモリーで行う場合、2本のデータ配列が
ソーティング済みと言う事です!≫有る事が、必要でコノ
関数「SortMerge()」は、2本のデータ配列から、新しく
2本のデータを合わせた(マージ)した結果データ配列≪
★備考★多分、勘の鋭い人は、結果の配列は2本のデータが
収まるサイズが必要と思われたと思います!その通り、結果
として格納される配列【ここでは、仮引数「float buf[]」
に対応する実引数で示される配列領域】≫を用意する
必要が有ります!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「double buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「float buf1[],」は、マージ対象の配列1本目
です!勿論、データは、仮引数「int sw,」で示された
昇順/降順に従ったソート済みで有る事が必要です!
仮引数「float buf2[],」は、マージ対象の配列2本目
です!勿論、データは、仮引数「int sw,」で示された
昇順/降順に
従ったソート済みで有る事が必要です!
仮引数「float buf[],」は、ソート結果を格納する配列です
サイズは、仮引数「float buf1[],float buf2[],」両方が
格納されるサイズ対応する実引数の領域が必要です!
仮引数「int size1,」は、仮引数「float buf1[],」の
サイズです!
仮引数「int size2」は、仮引数「float buf2[],」の
サイズです!
★備考★この関数は、データ数が極めて大きい時の用途に
使用する方法です!予め、中身がソーティングされて無い
大きなデータ配列を小分けにして前述したソート関数
「sort();」等アルゴリズムとしてクイックソートを使用し
たソートを使用してソートしたデータ配列をココの関数
「SortMerge()」でマージして1本のソート済みデータ
配列にする事が出来ます!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-69)関数「void SortMerge(int sw,
double buf1[],double buf2[],double buf[],
int size1,int size2);」
void SortMerge( // ソート(併合):double
int sw, // 0:昇順、 1:降順
double buf1[], // バッファー:1
double buf2[], // バッファー:2
double buf[], // バッファー:格納先
int size1, // バッファーサイズ:1
int size2 ); // バッファーサイズ:2
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Merge」は、英単語「Merge」で合併する・併合する・
既に日本語的にマージとカタカナ言葉にも成って居る?!
★注意★ソーティングとしてマージソートを使用する時は、
大昔、コンピューターの外付け記憶装置が、磁気テープ≪
現在、家庭用のVTR(ビデオ・テープ・レコーダー)すら
過去の物に成って居るので更に前の音楽テープ・レコーダー
(初代のウォークマンも携帯可能なテープレコーダーとして
開発)とアナログの音楽や映像を記憶する装置にも馴染みが
無い人が多いと思いますが、コンピューターの補助記憶装置
としては、現在、バックアップ用途として未だに現役で使用
されている記憶装置です≫が主だった時に良く使われたソー
ティング技法です?!テープですのでデータはシーケンシャ
ルに前の方から順番にアクセスするのが記憶装置の使い方で
有る事は理解して頂きたい!その為、半導体メモリーの様に
ランダムアクセス≪任意に自由な場所をアクセス≫が、出来
ない為に前から順にデータを読みだすか、順に書き込むかし
か無いと不自由な操作が求められます!この環境下で効率良
く、ソーティングが出来るのが、マージソートです!
前提として2本のソーティング済みのデータ列が2本≪磁気
テープだと物理的にソーティング済みのデータが入っている
物が2本で半導体メモリーで行う場合、2本のデータ配列が
ソーティング済みと言う事です!≫有る事が、必要でコノ
関数「SortMerge()」は、2本のデータ配列から、新しく
2本のデータを合わせた(マージ)した結果データ配列≪
★備考★多分、勘の鋭い人は、結果の配列は2本のデータが
収まるサイズが必要と思われたと思います!その通り、結果
として格納される配列【ここでは、仮引数「double buf[]」
に対応する実引数で示される配列領域】≫を用意する
必要が有ります!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「double buf[]」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「double buf1[],」は、マージ対象の配列1本目
です!勿論、データは、仮引数「int sw,」で示された
昇順/降順に従ったソート済みで有る事が必要です!
仮引数「double buf2[],」は、マージ対象の配列2本目
です!勿論、データは、仮引数「int sw,」で示された
昇順/降順に従ったソート済みで有る事が必要です!
仮引数「double buf[],」は、ソート結果を格納する配列
です!
サイズは、仮引数「double buf1[],double buf2[],」両方が
格納されるサイズ対応する実引数の領域が必要です!
仮引数「int size1,」は、仮引数「double buf1[],」の
サイズです!
仮引数「int size2」は、仮引数「double buf2[],」の
サイズです!
★備考★この関数は、データ数が極めて大きい時の用途に
使用する方法です!予め、中身がソーティングされて無い
大きなデータ配列を小分けにして前述したソート関数
「sort();」等アルゴリズムとしてクイックソートを使用し
たソートを使用してソートしたデータ配列をココの関数
「SortMerge()」でマージして1本のソート済みデータ配列
にする事が出来ます!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-70)関数「void SortMerge(int sw,
TypeCorr buf1[],TypeCorr buf2[],TypeCorr buf[],
int size1,int size2);」
void SortMerge( // ソート(併合):TypeCorr
int sw, // 0:昇順、 1:降順
TypeCorr buf1[], // バッファー:1
TypeCorr buf2[], // バッファー:2
TypeCorr buf[], // バッファー:格納先
int size1, // バッファーサイズ:1
int size2 ); // バッファーサイズ:2
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
「Merge」は、英単語「Merge」で合併する・併合する・
既に日本語的にマージとカタカナ言葉にも成って居る?!
★注意★ソーティングとしてマージソートを使用する時は、
大昔、コンピューターの外付け記憶装置が、磁気テープ≪
現在、家庭用のVTR(ビデオ・テープ・レコーダー)すら
過去の物に成って居るので更に前の音楽テープ・レコーダー
(初代のウォークマンも携帯可能なテープレコーダーとして
開発)とアナログの音楽や映像を記憶する装置にも馴染みが
無い人が多いと思いますが、コンピューターの補助記憶装置
としては、現在、バックアップ用途として未だに現役で使用
されている記憶装置です≫が主だった時に良く使われたソー
ティング技法です?!テープですのでデータはシーケンシャ
ルに前の方から順番にアクセスするのが記憶装置の使い方で
有る事は理解して頂きたい!その為、半導体メモリーの様に
ランダムアクセス≪任意に自由な場所をアクセス≫が、出来
ない為に前から順にデータを読みだすか、順に書き込むかし
か無いと不自由な操作が求められます!この環境下で効率良
く、ソーティングが出来るのが、マージソートです!
前提として2本のソーティング済みのデータ列が2本≪磁気
テープだと物理的にソーティング済みのデータが入っている
物が2本で半導体メモリーで行う場合、2本のデータ配列が
ソーティング済みと言う事です!≫有る事が、必要でコノ
関数「SortMerge()」は、2本のデータ配列から、新しく
2本のデータを合わせた(マージ)した結果データ配列≪
★備考★多分、勘の鋭い人は、結果の配列は2本のデータが
収まるサイズが必要と思われたと思います!その通り、結果
として格納される配列【ここでは、仮引数
「TypeCorr buf[]」に対応する実引数で示される配列領域】
≫を用意する必要が有ります!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!★注意★今まで
解説して来た関数の仮引数で最初が、単純な型でその後で
構造を持った型≪ここの「TypeCorr buf[]」≫などが出る
パターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
仮引数「TypeCorr buf1[],」は、マージ対象の配列1本目
です!
勿論、データは、仮引数「int sw,」で示された
昇順/降順に従ったソート済みで有る事が必要です!
仮引数「TypeCorrbuf2[],」は、マージ対象の配列2本目
です!
勿論、データは、仮引数「int sw,」で示された
昇順/降順に従ったソート済みで有る事が必要です!
仮引数「TypeCorr buf[],」は、ソート結果を格納する配列
です!
サイズは、仮引数「TypeCorr buf1[],TypeCorr buf2[],」
両方が格納されるサイズ対応する実引数の領域が必要です!
仮引数「int size1,」は、仮引数「TypeCorr buf1[],」の
サイズです!
仮引数「int size2」は、仮引数「TypeCorr buf2[],」の
サイズです!
★備考★この関数は、データ数が極めて大きい時の用途に
使用する方法です!予め、中身がソーティングされて無い
大きなデータ配列を小分けにして前述したソート関数
「sort();」等アルゴリズムとしてクイックソートを使用し
たソートを使用してソートしたデータ配列をココの関数
「SortMerge()」でマージして1本のソート済みデータ配列
にする事が出来ます!
★注意★構造体「TypeCorr」は、相関値関連です!この
データは、相関値の値でソーティングします!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
★★★備考★★★
ここで一旦、切れが良い「大方のソート関連」説明が
終わったのとカナリ大きな記述に成り講義を消化するのが
大変と考えたのでと考えてと
★筆者環境★東京都が、節電勧告を受けたのでパソコンを
一旦、シャットダウンする為です!
まだ、【ソート】関連が少し残って居ますので出来るだけ
この講義に追加する心算ですので乞うご期待と記載して
一旦、終わります!お疲れ様です!!
★備考★
解説『解説クラスTypeArray』でも記載したが、
noteエディタの変な特性でコピペした文章の半角「*」
が消されたり、空白「」が消される事が多々あります!
注意して手作業で修正している筈ですが、必ず、code
機能で表示して居る物を正しいとして確認して下さい
ここで「解説クラスCopyClear(4)」を
終わります!講義として切れ目が良いと判断したから
です!
続きは、「解説クラスCopyClear(5)」に
成ります引き続き御贔屓して受講して下さい!
(4-8-71)関数「int SortMult(int sw,
TypeArray* pkey,TypeArray* pa,int n,int offset,int l);」
int SortMult( // 複数配列ソート:個数小(~32767)
int sw, // 0:昇順、1:降順
TypeArray *pkey, // 配列情報:キー
TypeArray *pa, // 配列情報:従属
int n, // 配列個数 1..100
int offset, // 先頭からのOffset
int l // 配列のサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeArray* pkey,」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
「Mult」は、英単語「multiple」で多数との意味です!
仮引数「TypeArray* pkey,」は、配列データを示す
「class TypeArray* 」でソーティングのキー用です!
仮引数「TypeArray* pa,」は、配列データを示す
「class TypeArray* 」でソーティングの連動データ配列!
仮引数「int n,」は、連動データ配列自体の個数(組数)
詰り、仮引数「TypeArray* pa,」で示される配列が何組
有るかを示します!
仮引数「int offset,」は、ソート対象(仮引数「
TypeArray* pkey,」)配列や連動して並び変える仮引数
「TypeArray* pa,」データ配列の先頭からのオフセットを
示します!
仮引数「int l」は、ソート対象(仮引数「
TypeArray* pkey,」)配列や連動して並び変える仮引数
「TypeArray* pa,」データ配列の配列の中のデータサイズ
です!
★注意★直ぐ後で紹介する関数「int SortMultLarge()」が
存在する理由としてソート配列のデータサイズは32767
以下と小さな値に成りますが、通常使用されるサイズで更に
より早く処理完了する為に大きなサイズの場合は、次に紹介
する関数「int SortMultLarge()」で処理する事にしていま
す!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!
(4-8-72)関数「int SortMultLarge(int sw,
TypeArray* pkey,TypeArray* pa,int n,int offset,int l);」
int SortMultLarge( // 複数配列ソート:個数大(32768~)
int sw, // 0:昇順、1:降順
TypeArray *pkey, // 配列情報:キー
TypeArray *pa, // 配列情報:従属
int n, // 配列個数 1..100
int offset, // 先頭からのOffset
int l // 配列のサイズ
);
「Sort」は、英単語「Sort」で意味「分類する、仕分けする
」・コンピューターサイエンス的にはデータを並べ替える
基本操作です!
仮引数「int sw,」は、この関数自体が、昇順≪小さい方
から順に大きく成る昇順≫ソート関数が「sw=0」で
降順≪大きい方から順に小さくなる降順≫ソート関数が
「sw=1」でと関数自体の機能選択します!
★注意★今まで解説して来た関数の仮引数で最初が、
単純な型でその後で構造を持った型≪ここの
「TypeArray* pkey,」≫などが出るパターンは稀です!
本来は関数名で昇順降順を分ける方が正当な方法ですが
昇順「ascendingorder」・降順「descendingorder」と馴染
みが無いにも程が有る英単語しか無いので仕方が無いから
「最初の引数」に切り替えスイッチを置く事にしました!
「Mult」は、英単語「multiple」で多数との意味です!
「Large」は、英単語「Large」で大きいと言う意味です!
ここでは、配列のサイズが32767と16ビット数を
超える場合★処理する内部で連動するインデックス配列を
インデックスが16ビット以内か大きいかとの事で処理速度
は遅く成るが、大きな数まで使用可に成るので「Large」を
関数名に付けました!
仮引数「TypeArray* pkey,」は、配列データを示す
「class TypeArray* 」でソーティングのキー用です!
仮引数「TypeArray* pa,」は、配列データを示す
「class TypeArray* 」でソーティングの連動データ配列!
仮引数「int n,」は、連動データ配列自体の個数(組数)
詰り、仮引数「TypeArray* pa,」で示される配列が何組
有るかを示します!
仮引数「int offset,」は、ソート対象(仮引数「
TypeArray* pkey,」)配列や連動して並び変える仮引数
「TypeArray* pa,」データ配列の先頭からのオフセットを
示します!
仮引数「int l」は、ソート対象(仮引数「
TypeArray* pkey,」)配列や連動して並び変える仮引数
「TypeArray* pa,」データ配列の配列の中のデータサイズ
です!
★詳細★は、後で説明:【ファイル「CopyClear120.cpp」が
対象】します!
(4-8-73)関数「int MultSorting(
BYTE *ptrsw,TypeArray *pa,int n);」
int MultSorting( // マルチソート
BYTE *ptrsw, // 0:昇順、1:降順
TypeArray *pa, // 配列1~100の情報
int n // 配列の個数 1..100
);
「Mult」は、英単語「multiple」で多数との意味です!
「Sorting」は、英単語「Sort」で意味「分類する、仕分け
する」・コンピューターサイエンス的にはデータを並べ替え
る基本操作です!
★注意★ワザワザ「Sorting」と「ing」が付いて居るのは、
名前の区別です!
★備考★この関数では、「MultSorting」とキーデータが
複数の配列に有り最初の配列で大小が無い≪同じ値≫の
場合、次の配列で大小比較して行く事を行う関数です!
仮引数「BYTE *ptrsw,」は、この関数自体が、
昇順≪小さい方から順に大きく成る昇順≫ソート関数が
「*ptrsw=0」で降順≪大きい方から順に小さくなる降順≫
ソート関数が「*ptrsw=1」でと配列毎の大小関係を指示
します!
仮引数「TypeArray *pa,」は、配列データを示す
「class TypeArray 」でソーティングのキー用です!
仮引数「int n,」は、連動データ配列自体の個数(組数)
詰り、仮引数「TypeArray *pa,」で示される配列が何組
有るかを示します!
★詳細★は、後で説明:【ファイル「CopyClear110.cpp」が
対象】します!
(4-8-74)関数「int MultSortingshort (
BYTE *ptrsw,short **pa,int n,int l);」
int MultSortingShort( // MultSort:short単位配列群
BYTE *ptrsw, // 0:昇順、1:降順
short **pa, // 配列1~100の情報
int n, // 配列の個数 1..100
int l // 配列のサイズ
);
「Mult」は、英単語「multiple」で多数との意味です!
「Sorting」は、英単語「Sort」で意味「分類する、仕分け
する」・コンピューターサイエンス的にはデータを並べ替え
る基本操作です!
★注意★ワザワザ「Sorting」と「ing」が付いて居るのは、
名前の区別です!
★備考★この関数では、「MultSorting」とキーデータが
複数の配列に有り最初の配列で大小が無い≪同じ値≫の
場合、次の配列で大小比較して行く事を行う関数です!
「short 」は、勿論、型名「short 」です!
★注意★使用頻度が高いと考えて
関数「int MultSorting()」の特別版として使い易く機能
だけ「型名short 」に特化した関数です!
仮引数「BYTE *ptrsw,」は、この関数自体が、
昇順≪小さい方から順に大きく成る昇順≫ソート関数が
「*ptrsw=0」で降順≪大きい方から順に小さくなる降順≫
ソート関数が「*ptrsw=1」でと配列毎の大小関係を指示
します!
仮引数「short **pa,」は、配列データへのポインタを示す
★注意★「**pa」と≪ポインタのポインタ≫に成って居る
事に気御付けて下さい!
仮引数「int n,」は、データ配列自体の個数(組数)
詰り、仮引数「short **pa,」で示される配列が何組
有るかを示します!
仮引数「int l」は、ソーティングされる配列の長さです!
★詳細★は、後で説明:【ファイル「CopyClear110.cpp」が
対象】します!
(4-8-75)関数「void ConvertXY2int (
TypeXY xy[],int buf[],int size,int mode=1);」
void ConvertXY2int( // TypeXY→int
TypeXY xy[], // 元のTypeXYバッファー
int buf[], // 変換先のintバッファー
int size, // バッファーサイズ
int mode=1 ); // モード
// 0:XY→int
// 1:YX→int(省略時)
「Convert」は、英単語「Convert」で変換!
「XY」は、XY座標データ!具体的には、
構造体「structTypeXY {}」を型とするデータ配列です!
「2」は、英単語「to」と発音が近いので「to」の省略と
して使用!
「int 」は、整数データ「int型」です!
詰り、構造体「structTypeXY {}」を型とするデータ配列と
整数データ「int型」配列の変換です!
仮引数「TypeXY xy[]」は、XY座標データの配列です!
仮引数「int buf[]」は、変換された結果格納データの
配列です!
仮引数「int size,」は、配列のサイズです!
仮引数「int mode=1」は、「mode=0」の時、int型
4バイトデータへX座標を上位2バイト、Y座標を下位
2バイトへ詰め直すモード選択です!
「mode=1(省略時)」の時、int型4バイトデータへ
Y座標を上位2バイト、X座標を下位2バイトへ詰め直す
モード選択です!
★詳細★は、後で説明:【ファイル「CopyClear110.cpp」が
対象】します!
(4-8-76)関数「void ConvertXYHV2int (
TypeXYHV xy[],int buf[],int size,int mode=1,
int inc=0);」
void ConvertXYHV2int( // TypeXYHV→int
TypeXYHV xy[], // 元のTypeXYHVバッファー
int buf[], // 変換先のintバッファー
int size, // バッファーサイズ
int mode=1, // モード
// 0:XY→int
// 1:YX→int(省略時)
// 2:HV→int
// 3:VH→int
// 4:YV→int
int inc=0 ); // 増加幅(0:省略時目印)
「Convert」は、英単語「Convert」で変換!
「XYHV」は、XY座標データ!具体的には、
構造体「struct TypeXY HV{}」を型とするデータ配列です!
「2」は、英単語「to」と発音が近いので「to」の省略と
して使用!
「int 」は、整数データ「int型」です!
詰り、構造体「struct TypeXY HV{}」を型とするデータ配列
と整数データ「int型」配列の変換です!
仮引数「TypeXY HVxy[]」は、XY座標データの配列です!
仮引数「int buf[]」は、変換された結果格納データの
配列です!
仮引数「int size,」は、配列のサイズです!
仮引数「int mode=1,」は、「mode=0」の時、int型
4バイトデータへX座標を上位2バイト、Y座標を下位
2バイトへ詰め直すモード選択です!
「mode=1(省略時)」の時、int型4バイトデータへ
Y座標を上位2バイトX座標を下位2バイトへ詰め直す
モード選択です!
「mode=2」の時、int型
4バイトデータへH水平幅を上位2バイト、V垂直幅を
下位2バイトへ詰め直すモード選択です!
「mode=3」の時、int型
4バイトデータへV垂直幅を上位2バイト、H水平幅を
下位2バイトへ詰め直すモード選択です!
「mode=4」の時、int型
4バイトデータへY座標を上位2バイト、V垂直幅を下位
2バイトへ詰め直すモード選択です!
仮引数「int inc=0」は、y座標を成分(Y・V)の増加幅
です!
★詳細★は、後で説明:【ファイル「CopyClear110.cpp」が
対象】します!
(4-8-77)関数「int BinarySearchX(
TypeXY buf[],int size,int x);」
int BinarySearchX( // 2分探査:X座標
TypeXY buf[], // バッファー
int size, // バッファーサイズ
int x ); // 探査対象
「Binary」は、英単語「Binary」で「広く2を表す」とか
「Search」は、英単語「英単語」で「探す・探索」です!
「BinarySearch」でコンピューターサイエンス的には、
用語「バイナリーサーチ・二分探索」としてソート済みの
配列に対して目的のデータを探す事を意味します!
「X」は、X座標を意味します!詰り、この関数は、
X座標を探索する関数です!
仮引数「TypeXY buf[]」は、構造体「structTypeXY {}」と
XY座標組データ配列で既にソート済みの配列が必要です!
仮引数「int size,」は、配列のサイズ!
仮引数「int x);」は、探索目的のX座標の値です!
★詳細★は、後で説明:【ファイル「CopyClear130.cpp」が
対象】します!
(4-8-78)関数「int BinarySearchY(
TypeXY buf[],int size,int y);」
int BinarySearchY( // 2分探査:Y座標
TypeXY buf[], // バッファー
int size, // バッファーサイズ
int y ); // 探査対象
「Binary」は、英単語「Binary」で「広く2を表す」とか
「Search」は、英単語「英単語」で「探す・探索」です!
「BinarySearch」でコンピューターサイエンス的には、
用語「バイナリーサーチ・二分探索」としてソート済みの
配列に対して目的のデータを探す事を意味します!
「Y」は、Y座標を意味します!詰り、この関数は、
Y座標を探索する関数です!
仮引数「TypeXY buf[]」は、構造体「struct TypeXY {}」と
XY座標組データ配列で既にソート済みの配列が必要です!
仮引数「int size,」は、配列のサイズ!
仮引数「int y);」は、探索目的のY座標の値です!
★詳細★は、後で説明:【ファイル「CopyClear130.cpp」が
対象】します!
(4-8-79)関数「int BinarySearchX(
TypeXYF buf[],int size,double x);」
int BinarySearchX( // 2分探査:X座標
TypeXYF buf[], // バッファー
int size, // バッファーサイズ
double x ); // 探査対象
「Binary」は、英単語「Binary」で「広く2を表す」とか
「Search」は、英単語「英単語」で「探す・探索」です!
「BinarySearch」でコンピューターサイエンス的には、
用語「バイナリーサーチ・二分探索」としてソート済みの
配列に対して目的のデータを探す事を意味します!
「X」は、X座標を意味します!詰り、この関数は、
X座標を探索する関数です!
仮引数「TypeXY Fbuf[]」は、構造体「struct TypeXY F{}」
とXY座標組データ配列で既にソート済みの配列が必要
です!
仮引数「int size,」は、配列のサイズ!
仮引数「double x);」は、探索目的のX座標の値です!
★詳細★は、後で説明:【ファイル「CopyClear130.cpp」が
対象】します!
(4-8-80)関数「int BinarySearchY(
TypeXY Fbuf[],int size,double y);」
int BinarySearchY( // 2分探査:Y座標
TypeXYF buf[], // バッファー
int size, // バッファーサイズ
double y ); // 探査対象
「Binary」は、英単語「Binary」で「広く2を表す」とか
「Search」は、英単語「英単語」で「探す・探索」です!
「BinarySearch」でコンピューターサイエンス的には、
用語「バイナリーサーチ・二分探索」としてソート済みの
配列に対して目的のデータを探す事を意味します!
「Y」は、Y座標を意味します!詰り、この関数は、
Y座標を探索する関数です!
仮引数「TypeXY Fbuf[]」は、
構造体「struct TypeXY F{}」とXY座標組データ配列で既に
ソート済みの配列が必要です!
仮引数「int size,」は、配列のサイズ!
仮引数「double y);」は、探索目的のY座標の値です!
★詳細★は、後で説明:【ファイル「CopyClear130.cpp」が
対象】します!
(4-8-81)関数「int BinarySearchX(
TypeXY Dbuf[],int size,double x);」
int BinarySearchX( // 2分探査:X座標
TypeXYD buf[], // バッファー
int size, // バッファーサイズ
double x ); // 探査対象
「Binary」は、英単語「Binary」で「広く2を表す」とか
「Search」は、英単語「英単語」で「探す・探索」です!
「BinarySearch」でコンピューターサイエンス的には、
用語「バイナリーサーチ・二分探索」としてソート済みの
配列に対して目的のデータを探す事を意味します!
「X」は、X座標を意味します!詰り、この関数は、
X座標を探索する関数です!
仮引数「TypeXY Dbuf[]」は、構造体「struct TypeXY D{}」と
XY座標組データ配列で既にソート済みの配列が必要です!
仮引数「int size,」は、配列のサイズ!
仮引数「double x);」は、探索目的のX座標の値です!
★詳細★は、後で説明:【ファイル「CopyClear130.cpp」が
対象】します!
(4-8-82)関数「int BinarySearchY(
TypeXY Dbuf[],int size,double y);」
int BinarySearchY( // 2分探査:Y座標
TypeXYD buf[], // バッファー
int size, // バッファーサイズ
double y ); // 探査対象
「Binary」は、英単語「Binary」で「広く2を表す」とか
「Search」は、英単語「英単語」で「探す・探索」です!
「BinarySearch」でコンピューターサイエンス的には、
用語「バイナリーサーチ・二分探索」としてソート済みの
配列に対して目的のデータを探す事を意味します!
「Y」は、Y座標を意味します!詰り、この関数は、
Y座標を探索する関数です!
仮引数「TypeXY Dbuf[]」は、構造体「struct TypeXY D{}」
とXY座標組データ配列で既にソート済みの配列が必要
です!
仮引数「int size,」は、配列のサイズ!
仮引数「double y);」は、探索目的のY座標の値です!
★詳細★は、後で説明:【ファイル「CopyClear130.cpp」が
対象】します!
★備考★
解説『解説クラスTypeArray』でも記載したが、
noteエディタの変な特性でコピペした文章の半角「*」
が消されたり、空白「 」が消される事が多々あります!
注意して手作業で修正している筈ですが、必ず、code
機能で表示して居る物を正しいとして確認して下さい
ここで一旦、切れが良い「ソート関連関数」で「public」
属性の関数説明が終わったので2月27日分の講義と
します!
後、少しだけソーティング関連(「private」属性)の
関数が残って居ますが、其れは後日!!
続きは、「解説クラスCopyClear(5)」に成り
ます!
「(5)」では、正規化相関「画像の比較」と大きな項目に
成ります!引き続き御贔屓して受講して下さい!