教えて!しごとの先生
教えて!しごとの先生
  • 回答終了

基本情報技術者試験の過去問題で、下記の問題が解説も問題も全く理解でぎす、ご説明いただけないでしょうか。

基本情報技術者試験の過去問題で、下記の問題が解説も問題も全く理解でぎす、ご説明いただけないでしょうか。解説を探すと、バブルソートのアルゴリズムとありましたが、バブルソートを調べ後に解説みても、このアルゴリム(特に行番号1と2の処理)とどう結びつているのか理解できません。 例えば画像ような配列A=( 7,3,1,5)があるとしたとき、行番号1のiを1からn-1 まで1ずつ増やすとは何を1ずつ増やすのでしょうか。配列に入ってる値ですか?(画像の配列だと中の値を(7,3,1,5)→(8,4,2,5)のように1ずつ増やすとの意味でしょうか?) また行2〜3を繰り返すとは? 行2(jをnから〜)と行3(もしA[j] < 〜)の処理を同時並行でやってるとの意味ですか? 行番号2のjはどこからきたのでしょうか。また行番号1と同じようにnからi+1まで減らすとは何をどう減らすのでしょうか。 理解できない事項ばかりで恐縮ですが、初心者向けに詳しく解説お願い致します。 (問題) 配列A[i](i=1,2,...,n)を、次のアルゴリズムによって整列する。行2~3の処理が初めて終了したとき、必ず実現されている配列の状態はどれか。 [アルゴリズム] 行番号 1 iを1からn-1まで1ずつ増やしながら行2~3を繰り返す 2 jをnからi+1まで減らしながら行3を繰り返す 3 もしA[j] < A[j-1]ならば、A[j]とA[j-1]を交換する 選択肢: 正解はア ア A[1]が最小値になる。 イ A[1]が最大値になる。 ウ A[n]が最小値になる。 エ A[n]が最大値になる。

続きを読む

72閲覧

回答(2件)

  • 単純に配列の参照方法というか、配列の読み書きを理解していないようにお見受けしました。 A=( 7,3,1,5) という配列があるとき、中の、7や、3や1や5を個別に参照したい時がありますね。 例えば、配列Aの1番目の要素の7を参照したいときは、A[1]と書きます。 このA[1]は7そのものを表しています。 2番目の要素の3であれば、A[2]になります。 つまり、配列のX番目の値は、A[X]と書く決まりなのです。 このA[X]を「参照」すると書きましたが、これは値を読み取ることもできますし、新たに別の値を上書きすることもできます。 例えば、初期状態で、A[1]を読み取ると、上記の通り7の値が取れますが、A[1]に全く別の値を書き込むこともできます。A[1]に999を書き込めば、その時、 A=( 999,3,1,5) という状態になるのです。 プログラムの場合は、このX番目を固定の値ではなく、コロコロ変えながら操作をしたいことがあります。 このような時にiやjなどの変数を割り当てることがあります。 iが1の時に、A[i]を参照すると、A[1]を参照した時と同じ動作になりますし、 iが2の時に、A[i]を参照すると、A[2]を参照した時と同じ動作になります。 と言うわけで、 「もしA[j] < A[j-1]ならば」は、その配列の要素の値を読み取った後に比較しているだけです。 jが4なら、 A[4] < A[3] の真偽を見ていることになります。 ここでA[4] は5で、A[3]は1ですから、 実際の値は、 5 < 1 かどうかを確認しているわけです。 この不等号は成り立ちませんね。 つまり、この後に記載されている「A[j]とA[j-1]を交換する」は実行されません。 一方で、 jが3なら、 A[3] < A[2] の真偽を見ていることになります。 ここでA[3] は1で、A[2]は3ですから、 実際の値は、 1 < 3 かどうかを確認しているわけです。 この不等号は成り立ちますね。つまり、真です。 結果、次の「A[j]とA[j-1]を交換する」が実行されます。この意味は中身の値を交換するということです。 前記の通りjは3ですから、この操作はA[3]とA[2]の中のあたいが交換されます。 この操作のあとの配列Aは、 A=( 7,1,3,5) このような状態になります。

    続きを読む
  • ん~、そもそもですが、もう少しバブルソートについて学んだ方が良いです。 バブルソート(風を含む)を理解できない・出来ていない段階で受ける試験ではないので…。 まぁ、書き方がいやらしいだけで、 3 もしA[j] < A[j-1]ならば、A[j]とA[j-1]を交換する これが、 3 もしA[j-1] > A[j]ならば、A[j]とA[j-1]を交換する だったら、直ぐにA[j]よりもA[j-1]が小さくなることが判りますよね?

    続きを読む

< 質問に関する求人 >

基本情報技術(東京都)

この条件の求人をもっと見る

< 質問に関する求人 >

初心者(東京都)

求人の検索結果を見る

もっと見る

この質問と関連する質問

    「#経験がなくても働きやすい」に関連する企業

    ※ 企業のタグは投稿されたクチコミを元に付与されています。

    < いつもと違うしごとも見てみませんか? >

    覆面調査に関する求人(東京都)

    この条件の求人をもっと見る

    Q&A閲覧数ランキング

    カテゴリ: 資格

    転職エージェント求人数ランキング

    • 1

      続きを見る

    • 2

      続きを見る

    • 3

      続きを見る

    あわせて読みたい
    スタンバイプラスロゴ

    他の質問を探す

    答えが見つからない場合は、質問してみよう!

    Yahoo!知恵袋で質問をする

    ※Yahoo! JAPAN IDが必要です

    スタンバイ アプリでカンタン あなたにあった仕事見つかる