アルゴリズムについて教えてください(1/2)

締切り済みの質問

アルゴリズムについて教えてください

トランプのダイヤのカードが13枚ある。
順序はバラバラになっている。
小さい順に並べるアルゴリズムを考えよ。

という課題が出されました。
アルゴリズムの意味はわかるのですが、やり方がさっぱりわかりません。確率の考え方を使うのですか?

ヒントでもいいので教えてください。
よろしくお願いします。

投稿日時 - 2007-02-23 23:19:26

QNo.2778735

すぐに回答ほしいです

5人が「このQ&Aが役に立った」と投票しています

[  前へ  |  ]

回答(8件中 1~5件目)

ANo.8

#7です。
すみません。「元祖」バブルソートは、次のアルゴリズムです。
このほうがビールの泡に似ています。

iを1から12まで繰り返す
--i番目とi+1番目のカードを比べ前者が大きければ交換
上記を1ループとして、これを無限に繰り返す
1ループの中で交換が1回も行われなければ終了

#7で紹介したものはバブルソートの変形です。正確な名前は知らないので、どなたか助け舟を。

投稿日時 - 2007-02-24 22:07:30

ANo.7

質問者さんは初心者とお見受けします。もし違ったらごめんなさい。
まず「バブルソート」を覚えてください。これは、コップの中の泡が次第に上がっていくようすを指します。

i を1から12まで繰り返す
--jをi+1から13まで繰り返す
----i番目がj番目より大きければ入れ替える

で完成です。実際にダイヤ13枚と、「i」「j」と書いた札を用意して、机の上でやってみましょう。あとはプログラミングですね。

ちょっと丸投げ質問の疑いもありますが、このあと自力でプログラミングができるなら、よしとしましょう。

投稿日時 - 2007-02-24 11:05:38

ANo.6

> トランプのダイヤのカードが13枚、
これって別々のカードですか? もし、そうならソートする必要なんかなくて、データを作ってしまえばいいんですけど。

そうでないなら、ソートすることになりますが、トランプのカードなら、値が限定されているのでビンソートが高速でしょうね。

投稿日時 - 2007-02-24 07:15:34

ANo.5

数分差で #4 さんに先に書かれちゃいました … (^^;

#4 さんのアルゴリズムはビンソート (バケットソートなどともいう) といい,
私の知る限り最速のソートアルゴリズムで,データ数 (この場合は13枚) に
比例する時間でソートできます.しかしキーが整数型以外の場合には
使いにくいせいか,あまり知られていないようです.

「ビンソート」で Google 検索
http://www.google.co.jp/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2006-34,GGGL:ja&q=%22%E3%83%93%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%88%22

ソート (Wikipedia)
http://ja.wikipedia.org/wiki/Category:%E3%82%BD%E3%83%BC%E3%83%88

投稿日時 - 2007-02-24 00:38:16

ANo.4

実際にトランプを番号順に並べたいときどうしますか,
いろいろな方法が思いつきますが,どれかひとつを子供でもできるように説明すれば,アルゴリズムになっているでしょう。
例えば,
(1)カードを置くスペースを13箇所確保し,左から1~13番とする。
(2)カードを1枚めくって,ランクがkだったらk番目の位置に置く。
(3)(2)を13回繰り返す。

投稿日時 - 2007-02-24 00:26:29

あわせてチェックしたい
  • トランプでの確率 ...
  • トランプで同じ数字が4枚そろう確率 ...
  • トランプ的問題 確率 ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら

おすすめリンク