最近プログラミングコンテストに参加しようと勉強を始めたのですが、ソートについて分からないことがあります。
ソートについて調べていると、配列などに入っている値をソートするというプログラムはよくあるのですが、ほかの値も一緒に並べ替えるにはどうしたらよいのでしょうか。
たとえば、テストの点数から成績順に学籍番号を並べ替えたいなどの場合です。
言語はC/C++でお願いします。ただ、STLについてはまだまだ未熟なので難しいことは全くわかりません。よろしくお願いします。
ソートについて
Re: ソートについて
>たとえば、テストの点数から成績順に学籍番号を並べ替えたいなどの場合です。
のようなデータの配列を作ってソートすればどうでしょうか.
もし,↓のようにデータを持っているとしたら… ソート処理により動かすものをTestScore[]等のデータそのものではなく 配列のindex値にする とかすればよいのではないでしょうか.
もし,↓のようにデータを持っているとしたら… ソート処理により動かすものをTestScore[]等のデータそのものではなく 配列のindex値にする とかすればよいのではないでしょうか.
Re: ソートについて
やや言葉足らずだったようで申し訳ありません。できればソートアルゴリズムは自分で実装せずに他のライブラリから呼び出して使いたいと考えているのですが、その方法がわかりません。自分で書こうとしても、高速なアルゴリズムにするには時間がかかってしまうので、あまり現実的ではない気がします。
Re: ソートについて
構造体にデータを入れて、qsort関数(stdlib.h)を使うといいと思います。
ググってみてください。
[search=google]qsort 構造体[/search]
ググってみてください。
[search=google]qsort 構造体[/search]
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: ソートについて
処理方針(?)を示しただけです.sato さんが書きました:やや言葉足らずだったようで申し訳ありません。できればソートアルゴリズムは自分で実装せずに他のライブラリから呼び出して使いたいと考えているのですが、その方法がわかりません。自分で書こうとしても、高速なアルゴリズムにするには時間がかかってしまうので、あまり現実的ではない気がします。
ソートアルゴリズム部分は std::sort なりなんなりを使えばよいのではないでしょうか.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: ソートについて
闇雲にソートしても効率が良いかは分からないので知識が必要です。
100件程度のデータにクイックソートは逆に遅いです。
「ソート時間の比較」
http://www.ics.kagoshima-u.ac.jp/~fuchi ... mpare.html
100件程度のデータにクイックソートは逆に遅いです。
「ソート時間の比較」
http://www.ics.kagoshima-u.ac.jp/~fuchi ... mpare.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: ソートについて
>> みけCAT様
qsort関数というのは知りませんでした。構造体をこんな簡単にソートできるという関数があるとは。ぜひ使ってみます。
>>usao様
std::sortも考えたのですが、質問のような処理をすることができるのかすら分かりませんでした。STLについてはまだ未知の領域なのでこれから開拓していきたいと思います。
>>softya様
少ないデータ数ではクイックソートもずいぶん遅いですね。逆に単純なバブルソートがそこそこの速度を出すというのは不思議です。参考にさせていただきます。
皆様回答ありがとうございました。
qsort関数というのは知りませんでした。構造体をこんな簡単にソートできるという関数があるとは。ぜひ使ってみます。
>>usao様
std::sortも考えたのですが、質問のような処理をすることができるのかすら分かりませんでした。STLについてはまだ未知の領域なのでこれから開拓していきたいと思います。
>>softya様
少ないデータ数ではクイックソートもずいぶん遅いですね。逆に単純なバブルソートがそこそこの速度を出すというのは不思議です。参考にさせていただきます。
皆様回答ありがとうございました。