No.1
- 回答日時:
クイックソートは名前の通り「クイック(速い)なソート方法」です。
データ中のどれか一つを指名して基準値(軸またはピボット)とします。
全データを基準値より大きいグループと小さいグループに分けます。
それぞれのグループの中でまた基準値を決め同じ事を繰り返します。
全データが全てひとりグループになったときソート完了です。
古典的ソートがN**2型の計算量なのに対しクイックソートは
条件が悪くなければN*(log N)型の計算量になります。
マージソートやヒープソートも同じ計算量であり、最速のソート
の仲間です。
このアルゴリズムの実現には「再帰処理」を使うと楽です。
No.2ベストアンサー
- 回答日時:
たとえば
「7135264」と並んだ数字があると
適当にピボットをとります。
ここでは5をピボットにすると
「713[5]264」に対して
左が小さく右が大きくなるように
7を5の右、2と4を左に移動
で、左が「1324」右が「76」となって
左は3をピボットとしたら2が左に移動、
右はどちらにしても7と6が入れ替え
これで「1234567」のソート(整列)が完成。
というアルゴリズムです。
基本的な説明はymmasayanさんので完璧です。
No.3
- 回答日時:
クイックソートは、最初におおざっぱに分けて、だんだん細かい部分を作って分けていきます。
よく切られたトランプ52枚を小さい順に並べ替える場合、方法1.はじめから完璧に並べ替えをする:1枚1枚を比べていきますから、1枚と並べ替えられた物を比べます。方法2.適当に選んだ1枚(基準の数)と大きいか小さいかだけ考えて山を2つ作ります。(1枚が3であれば、1-3が入った山と4-13)できた小さい山も同様に小さい山にして行きます。この山作りを1枚になるまでやります。方法2の小さい山を沢山並べ替えようという作戦がクイックソートです。方法1で100枚の物を並べ替える交換回数は平均1+2+...+99=100*99/2=4950回ですが1回だけ方法2を使うと最初に50個と50個の山に分けて50個を2回並べ替える場合(1+2+...49)*2+100=50*49+100=2600回でこちらが早いですね。1回だけではなく最後までやるとかなり早く並べ替える事ができるのが分かります。お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) 簡単にホームページを作る方法ないですか? スマホアプリを少しいじったけどわかりませんでした… ショッ 2 2022/11/16 14:59
- その他(暮らし・生活・行事) 50代 仕事のミスが多い 2 2022/08/26 07:38
- Instagram Instagramに載せる画像に 手書きのイラストを 重ね書きできますか? アプリなど 簡単なやり方 1 2023/04/19 10:56
- 日本語 「私ぐらいに作れる」という言い方は? 8 2023/03/02 13:14
- インターネット広告・アフィリエイト アフェリエイトのA8.netですが、YouTuberの説明を観ても、ブログに広告を載せるような事言っ 2 2022/07/04 15:37
- 哲学 哲学の歴史、分野について体系的に知りたいです。良いサイトや良い本を教えて下さい。 2 2023/02/24 00:36
- その他(悩み相談・人生相談) あくまでも私の考えですが親のエゴで子供って産まれてくるじゃないですか、、 今自分がこの世に存在してい 1 2022/04/25 23:16
- その他(海外) 海外で、旅行客がお店などで何かを注文する際に、その国の言葉が分からないから、「This one pl 6 2022/12/25 21:26
- その他(プログラミング・Web制作) 「問題も答えも画像」のクイズを簡単に作れるもの何かありませんでしょうか? 1 2022/05/30 17:29
- 財務・会計・経理 フリーランス等の源泉徴収を含む請求書の作成について 4 2022/09/12 09:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBScriptで重複レコードを削除...
-
VB.NETでファイル名順にファイ...
-
C# DataGridView のヘッダーセ...
-
System.IO.Directory.GetFiles...
-
リスト構造のソートで悩んでま...
-
C言語・要素除去
-
VBA基本構文の作り方 2列の...
-
文字列をソートする方法
-
excel VBA リストビューの行...
-
あるディレクトリ内のファイル...
-
偶数奇数の判別!!
-
スプレッドでのソート
-
excel VBA の条件をつけての列...
-
ファイル名「1.jpg ~10.jpg~...
-
10個の整数を入力して小さい順...
-
vbでDataTableの抽出コピー
-
構造体配列のソート
-
MSFlexGridのSortメソッドについて
-
DataGridViewの昇順降順。
-
Excel VBA で別シートにデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
VB.NETでファイル名順にファイ...
-
C# DataGridView のヘッダーセ...
-
ファイル名「1.jpg ~10.jpg~...
-
C# DataTableの行をソートしてD...
-
あるディレクトリ内のファイル...
-
excel VBA の条件をつけての列...
-
excel VBA リストビューの行...
-
DataGridViewの複数列を連動し...
-
文字列をソートする方法
-
Excelですべての組合せ(重複組...
-
列のどこをクリックしてもソー...
-
n番目に大きい数を求めるアル...
-
Excel VBAで並べ替えをしたい
-
DataGridViewの昇順降順。
-
vbでDataTableの抽出コピー
-
数字文字列のソート方法
-
VB6でデータを昇順に並べ替える
-
VBScriptで重複レコードを削除...
-
ListViewのソートについて
おすすめ情報