A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
クイックソートは自作ですか?
プログラムを間違えているからスタックが不足するのでしょう。
再帰呼び出しの際に、ソート対象のデータのコピーを渡しているとか。
クイックソートはインプレースソートなので、8191要素くらいでスタックが足りなくなることは考えにくいです。
No.3
- 回答日時:
#1で示唆されている、再帰型(リカーシブな)のアルゴリスムを使っているからだと思います。
http://e-words.jp/w/E383AAE382ABE383BCE382B7E383 …
http://www.geocities.jp/kmctecyh/k_gozen/gozen03 …
にあるように
「リカーシブは、プログラムの中から自分自身を呼び出すことを言う。自分自身を定義するの
に自分自身よりも1次低い集合を用いる。その部分集合はより低次の部分定義を用いて定義する
ことを繰り返して表現する。
クィックソートは、適当にサンプリングして得られたデータNに着目し、N以下のデータ系
列とN以上のデータ系列に分割する。このデータNを軸(ピボット)という。データNを軸とし
て、その軸の値より小さい要素は軸より前方へ、大きな要素は軸より後方へ振り分ける。適当な
長さの系列になるまで分割を繰り返し、それぞれの系列をソートすれば1つのソート済み系列と
なる。
分割の繰返しに再帰呼び出し(リカーシブ)を利用した高速の整列法である。」
ーーー
質問者がどこかで見たアルゴリズムがリカーシブなものであったのでしょう。理系の先生のクイックソートの記述には、これが多そう。
しかしすぐ質問のような事態になるでしょう。戻った時の情報を
蓄えていかないとならないから。
どこか再帰を使わないクイックソートのアルゴリズムを見つけるしかないでしょう。
http://edu.inf.shizuoka.ac.jp/lecture/2007/X121/ …
に考え方とC言語の簡単例がある。
「再帰的でない クイックソート」などでWEB照会しては。
No.2
- 回答日時:
No.1
- 回答日時:
プログラム知ってれば知ってると思うんですが、treeソートやクイックソートは最低でも比較対象の2倍はメモリ必要となります。
メモリが無い状態でソートするとなると、単純ソートやバブルソートとなりますが、決してこれらのソートは速いとは言えません。
とはいえ、スタック領域が不足なんて、このくらいのデータ量で出るのか?と思い少し調べました。
http://www.drk7.jp/MT/archives/000995.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語でファイルの中身をソー...
-
n番目に大きい数を求めるアル...
-
VB.NETでファイル名順にファイ...
-
C言語について
-
Excel VBAで並べ替えをしたい
-
配列の中身を入れ替える方法を...
-
用意されたファイルを読み込む...
-
文字列をソートする方法
-
n個の要素で出来る順列組み合...
-
ファイル名「1.jpg ~10.jpg~...
-
ポインタと構造体の利用について
-
EXCEL VBAのソートについて
-
C言語 配列の長さの上限
-
malloc呼び出し時のセグメンテ...
-
関数から配列を返すには?
-
char型にint型の数値を代入する。
-
C++のnewで確保したメモリーの...
-
Run-Time Check Failure #3とい...
-
プログラムによく出てくるst...
-
配列の要素数に変数を入れたい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataGridView のヘッダーセ...
-
VB.NETでファイル名順にファイ...
-
あるディレクトリ内のファイル...
-
VBA基本構文の作り方 2列の...
-
ファイル名「1.jpg ~10.jpg~...
-
Excelですべての組合せ(重複組...
-
vbでDataTableの抽出コピー
-
C# DataTableの行をソートしてD...
-
listboxの並び替え
-
(VBA) Dir 関数で取得するファ...
-
コレクションの数値をSortで並...
-
C言語・要素除去
-
Fortran77で多次元配列を並び替...
-
C# DataTable ソートについて
-
excel VBA の条件をつけての列...
-
VBScriptで重複レコードを削除...
-
文字列をソートする方法
-
n番目に大きい数を求めるアル...
-
C言語でアナグラムを求めるプロ...
おすすめ情報