質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.32%

  • 基本情報技術者

    49questions

    基本情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つです。試験ではプログラマーやシステムエンジニアなどIT業界で働くために必要とされる基礎知識や情報処理において論理的な考え方ができるか等が問われ、企業から高い評価を獲ることができ、IT業界の入門的な資格として人気があります。

【基本情報技術者】バブルソートについて

受付中

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 781

ai5

score 32

基本情報技術者
n個のデータをバブルソートを用いて整列するとき、
データ同士の比較回数は幾らか?

【答え】

n(n-1)
───
2

具体例でバブルソートは隣同士を比較するので、例えばデータが4件なら、6回となるので、選択肢の式のnに4を代入して6になるものを探すとあるのですが、よくわからないため、ご教授ください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • swordone

    2017/03/03 23:01

    一口に「よくわからない」と言われても、バブルソートがわからないのか(調べろ)、要素数4のときに比較回数が6回になるのがわからないのか、その他なのか、説明せずに回答を貰おうなんて図々しすぎる

    キャンセル

回答 3

+8

今までの回答も含めてそもそも論として突っ込みたいのですが、あなたのしたいことは、「実力は伴わなくてもいいから、何が何でも基本情報に通りたい」のでしょうか、それとも、「基本情報に値するだけのスキルを身に着けたい」のでしょうか。

例えばデータが4件なら、6回となるので、選択肢の式のnに4を代入して6になるものを探すとある

このような、「テクニックだけに頼った」学習法では、試験には通れるかもしれませんが、後にはおそらく何も残らないでしょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

この4月に基本情報を受ける者です。
バブルソートは右端から2つの数字を比較して行き、左端に一番小さな数字を持っていくアルゴリズムになります。(言葉での説明は難しいですね。)

例として
4件のデータをバブルソートする場合、

"4231"

と並んでいるとします。
最初に3と1を比較して、1の方が小さいので数字を入れ替えます。

"4213"

次に2と1を比較して、1の方が小さいので数字を入れ替えます。

"4123"

最後に4と1を比較して、1の方が小さいので数字を入れ替えます。

"1423"

これで一番小さい数字(1)が左端に来たため、また右端から数字を比較します。
はじめに2と3を比較して、3の方が大きいので数字は入れ替えません。

"1423"

次に4と2を比較して、2の方が小さいので数字を入れ替えます。

"1243"

これで2巡目が終わりました。
最後に4と3を比較して、3の方が小さいので数字を入れ替えます。

"1234"

バブルソートが完了しました。
以上がバブルソートの基本的な考え方になります。

そのため、データ数がN個の場合は、N未満の数字の合計になります。
データ数が4の場合は、4未満の数字(3+2+1)の合計(6)になります。

ちなみに"n(n-1)/2"と言うのは三角数の表し方になります。
間違った説明をしますと、階乗(4!=4*3*2*1=24等のこと)の足し算verだと思って頂ければ大丈夫かと存じます。

詳しく知りたい場合は「三角数とは」で検索してみてください。
試験勉強頑張ってくださいね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

何が分からないのか、書かれている質問からでは分かりません(苦笑)

バブルソートがどのように動き、どこでどういう比較をするかを理解していれば、比較回数が導き出せます。
この設問はバブルソートを理解しているかどうかを問うための問題だと思いますよ。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.32%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • 基本情報技術者

    49questions

    基本情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つです。試験ではプログラマーやシステムエンジニアなどIT業界で働くために必要とされる基礎知識や情報処理において論理的な考え方ができるか等が問われ、企業から高い評価を獲ることができ、IT業界の入門的な資格として人気があります。