- ベストアンサー
qsortの先頭のqの意味
C言語の関数にqsortというのがありますが最初のqはどういう意味でしょうか 順番に並べ替えるだけならsortでいいと思うのですが、どういう経緯でqが先頭についているのでしょうか
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
もともとはクイックソートの意味だったはず. 今では全くもって無意味ですが.
その他の回答 (3)
- hanabutako
- ベストアンサー率54% (492/895)
glibcによると、"The qsort function derives its name from the fact that it was originally implemented using the “quick sort” algorithm. "と書いてあるので、やはりquick sortのqだと思います。 http://www.gnu.org/s/hello/manual/libc/Array-Sort-Function.html#Array-Sort-Function しかしながら、C99の規格を見るかぎり、何のアルゴリズムを使うかは規定されていませんね。qsortが規格化されたC89の規格を閲覧することはできませんでしたが、元々はquick sortだったけれど、関数の仕様で具体的なアルゴリズムまで規定する必要はないのでその縛りを外したということかもしれません。
お礼
> 元々はquick sortだったけれど、関数の仕様で具体的なアルゴリズムまで規定する必要はないのでその縛りを外したということかもしれません。 わかりました。 ありがとうございます。
- hanabutako
- ベストアンサー率54% (492/895)
クイックソートだからです。 http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=qsort&dir=jpman-9.0.2%2Fman§=0 マニュアルを見ると分かる通り、この他にheapsort、mergesort、radixsortもあります。 詳しい話はアルゴリズムの教科書にまかせますが、それぞれ得手不得手があるのでそれを理解した上で使うとよいでしょう。
お礼
えーと、これは特定の環境でのマニュアルですよね?
- D-Matsu
- ベストアンサー率45% (1080/2394)
たしかクイックソート(quick sort)のqだったかと。
お礼
必ずしもクイックソートではないという話を聞いたことによる疑問です。 初期のころはクイックソートで実装されていたということでしょうか。
お礼
> 今では全くもって無意味ですが. そういうことなのですね。 ありがとうございました。