• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javaについて質問です)

3つの整数の中央値を求めるメソッドについての質問

このQ&Aのポイント
  • 2つのコードがありますが、問題の解説によると、2番目のコードの方が実行効率が悪いとされています。
  • 解説によると、最初のif文の判定と2番目のif文の判定が実質的に同じであるため、効率が悪くなるとされています。
  • 具体的には、b >= aおよびb <= aの判定を裏返した条件が、2番目のif文の条件として用いられているため、同じ判定を重複して行っていると言えます。

質問者が選んだベストアンサー

  • ベストアンサー
  • y_shimizu
  • ベストアンサー率41% (27/65)
回答No.1

2のif文に a<c<b となる値が入力された場合、 b>=a →trueなのでandの次へ c<=a →falseなのでorの次へ b<=a →falseなのでelseへ a>b →falseなのでorの次へ a<b →trueなのでandの次へ c>b →falseなのでelseへ という感じで処理されますね。 ここで、aとbの判定だけ見てみると b>=a →true b<=a →false a>b →false a<b →true これは上2つの判定は下2つの判定を包括していますね。 つまり、aがbより大きいか同値、である場合、aがbより大きい、の判定は同じ結果となるので、不要といえます。 「実質的に同一の判定」とはこれを言っているのではないでしょうか。

noname#261592
質問者

お礼

ありがとうございました

関連するQ&A