• 締切済み

何度もすいません。クイックソートのプログラムを教えてください。

課題の丸投げです。本当にすいません。 学校の課題で、整数配列をクイックソートにより降順に並べる関数を実装したプログラムを作る。という課題で int qsort(int date[], int size)という関数が与えられていて、sizeは配列の大きさを示す。またソートが成功した場合は1を、失敗した場合は0を返値とする。ということなんですがsizeを使ってクイックソートをどうやったら良いのか分からないので教えてください。 課題の丸投げですが、すぐ返事ほしいです。 よろしくお願いします。

みんなの回答

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

処理系によってはクイックソートになっているかも知れない例を挙げておきます。 #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)
回答No.3

クイックソートなんか探せばいくらでもアルゴリズムは見つかるだろうし, (注意は必要だけど) それを C プログラムで書くだけだから難しくもなんともない. アルゴリズムを書いた上で「この辺が分からない」とかならまだフォローのしようもあるんだけど, ここまで開き直られるとなぁ. こっちもあっさり開き直って int qsort(int date[], int size) { return 0; } ところで「date」ってなんだろう.

回答No.2

>課題の丸投げです。本当にすいません。 そこまで開き直られても対応は一緒です。 「課題」を「丸投げ」している時点で、自身の力になりません。 クイックソートのアルゴリズムをCで記載してください。 その際に使用するデータ領域(内容)は「int date[]」 、領域のサイズは「int size」で渡されているので、これを全体のサイズや中点を導き出すために使用するだけです。 その際に、プログラムミスで動作しない場合にソースを提示質問してください。 >またソートが成功した場合は1を、失敗した場合は0を返値とする。 については、何を以って「成功/失敗」と判断するかによります。

参考URL:
http://ja.wikipedia.org/wiki/%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%BD%E3%83%BC%E3%83%88
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

ここにサンプルがあるので、こちらを参考にして下さい。 それでもわからないときは、再度質問して下さい。

参考URL:
http://www1.cts.ne.jp/~clab/hsample/Sort/Sort9.html

関連するQ&A