- 締切済み
何度もすいません。クイックソートのプログラムを教えてください。
課題の丸投げです。本当にすいません。 学校の課題で、整数配列をクイックソートにより降順に並べる関数を実装したプログラムを作る。という課題で int qsort(int date[], int size)という関数が与えられていて、sizeは配列の大きさを示す。またソートが成功した場合は1を、失敗した場合は0を返値とする。ということなんですがsizeを使ってクイックソートをどうやったら良いのか分からないので教えてください。 課題の丸投げですが、すぐ返事ほしいです。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- jacta
- ベストアンサー率26% (845/3158)
処理系によってはクイックソートになっているかも知れない例を挙げておきます。 #include <algorithm> #include <functional> #include <iterator> #include <iostream> int qsort(int data[], int size) { try { std::sort(data + 0, data + size, std::greater<int>()); } catch (...) { return 0; } return 1; } int main() { int data[] = { 43, 6, 334, 7, 657, 46457 }; int n = static_cast<int>(sizeof data / sizeof data[0]); qsort(data, n); std::copy(data + 0, data + n, std::ostream_iterator<int>(std::cout, ", ")); return 0; }
- Tacosan
- ベストアンサー率23% (3656/15482)
クイックソートなんか探せばいくらでもアルゴリズムは見つかるだろうし, (注意は必要だけど) それを C プログラムで書くだけだから難しくもなんともない. アルゴリズムを書いた上で「この辺が分からない」とかならまだフォローのしようもあるんだけど, ここまで開き直られるとなぁ. こっちもあっさり開き直って int qsort(int date[], int size) { return 0; } ところで「date」ってなんだろう.
- SilverThaw
- ベストアンサー率32% (260/806)
>課題の丸投げです。本当にすいません。 そこまで開き直られても対応は一緒です。 「課題」を「丸投げ」している時点で、自身の力になりません。 クイックソートのアルゴリズムをCで記載してください。 その際に使用するデータ領域(内容)は「int date[]」 、領域のサイズは「int size」で渡されているので、これを全体のサイズや中点を導き出すために使用するだけです。 その際に、プログラムミスで動作しない場合にソースを提示質問してください。 >またソートが成功した場合は1を、失敗した場合は0を返値とする。 については、何を以って「成功/失敗」と判断するかによります。
- tatsu99
- ベストアンサー率52% (391/751)
ここにサンプルがあるので、こちらを参考にして下さい。 それでもわからないときは、再度質問して下さい。