複数条件によるソート
Posted: 2011年11月15日(火) 15:52
ソートについて悩んでいるので、質問させていただきます。
Cにて、複数条件によるソートを行わせたいと思っています。 ①groupの昇順ごとにdataを昇順にソート
②groupの昇順、かつ、特定のgroupのdataだけを昇順にソート
dataだけのソートはできるのですが、group毎等の条件が複数あると、
どのように考えればよいのか分からないです。
上記①,②のソートについてお教えいただけないでしょうか?
よろしくお願い致します。
Cにて、複数条件によるソートを行わせたいと思っています。 ①groupの昇順ごとにdataを昇順にソート
②groupの昇順、かつ、特定のgroupのdataだけを昇順にソート
dataだけのソートはできるのですが、group毎等の条件が複数あると、
どのように考えればよいのか分からないです。
上記①,②のソートについてお教えいただけないでしょうか?
よろしくお願い致します。
const int MAX_TARGET = 5;
stcData gTarget[MAX_TARGET];
//データ作成
void gCreateData(int index, char group, short data)
{
//作成不可
if((index < 0) | (index >= MAX_TARGET - 1))
return;
gTarget[index].group = group;
gTarget[index].data = data;
return;
} //gCreateData
main()
{
//データ作成
gCreateData(0, 0, 3);
gCreateData(1, 1, 2);
gCreateData(2, 0, 1);
gCreateData(3, 0, 2);
gCreateData(4, 1, 1);
//ソート前
// index group data
// 0 0 3
// 1 1 2
// 2 0 1
// 3 0 2
// 4 1 1
//①groupの昇順ごとにdataを昇順にソート
//ソート後
// index group data
// 0 0 1
// 1 0 2
// 2 0 3
// 3 1 1
// 4 1 2
//データリセット
gCreateData(0, 0, 3);
gCreateData(1, 1, 2);
gCreateData(2, 0, 1);
gCreateData(3, 0, 2);
gCreateData(4, 1, 1);
//ソート前
// index group data
// 0 0 3
// 1 1 2
// 2 0 1
// 3 0 2
// 4 1 1
//②groupの昇順、特定のgroupのdataだけを昇順にソート
//ソート後
// index group data
// 0 0 3
// 1 0 1
// 2 0 2
// 3 1 1
// 4 1 2
} //main