3つの数で最大値を求める5つのアルゴリズム


3つの数で最大値を求める5つのアルゴリズム
小さなアルゴリズム、大きな道理.3つの数の中で最大値を求めるのは、アルゴリズムを勉強して言語を学ぶ上で必ず経験しなければならない壁ではないでしょうか.Java(C言語にも三目演算子がある)に三目演算子があることを知っています.また、もともとこれが分岐構造の典型的な例題の一つであり、最も基礎的な分岐構造でも実現できることを知っています.この文章はJava言語を模範として最大値を求める考え方を整理する.脳回路を整理するためにこの文章を書いて記録すると同時に、仲間たちの整理を手伝うことができます.大神は私を笑わないでください!!私は私の料理を知っています!!!
1.三項演算子の運用
	public static void main(String[] args) {
        //          
       	  int a = 20;
          int b = 30;
          int c = 10;

          int max;
          max = a >= b ? a : b;
          max = max >= c ? max : c;
          //           
          // max = a >= b ? a >= c ? a : c : b >= c ? b : c  (       !!)
	 }

 第1種は三目演算子を用いてその中の最大値を抽出することができ、maxは中間変数であり、同時に最後の結果を担う二重の役割を兼ね備えている.このようなやり方は望ましいが、注釈部分でショーをしたい仲間はやめましょう...このコードを見たい人はいません.可読性が悪いです.
2.if-else文に&&演算子を加える
	public static void main(String[] args) {

   	 int a = 20;
   	 int b = 30;
    	 int c = 10;

  	if (a >= b && a >= c) {
            System.out.println("         " + a);
  	 } else if (b >= a && b>= c) {
            System.out.println("         " + b);
 	 } else {
            System.out.println("         " + c);
       }	
       }

2つ目はif-else分岐文を使って&&演算子を組み合わせます.この考え方はたぶんaが最大かbが最大か、そうでなければ私のcが最大に違いありません.とても通俗的な理解ははは!
3.if文
       public static void main(String[] args) {
          int a = 20;
   	  int b = 30;
          int c = 10;
    
  	  int max = a;  //    a    max
  	  if (b >= max){  //    b   max,   b     max
   	     max = b;
  	  } 
 	   if (c > max) {  //    c   max,   c     max
     	   max = c;
    	 }
      }


 第3の方法はif文を2回だけで最大値を求める目的を達成することができ、具体的な方法は事前にa値をmax値に付与してから、b、cの値とmax値の大きさを順次比較し、maxより大きい場合は自分でmaxに付与し、最大値を抽出する目的を達成する.
4.if-else文
    public static void main(String[] args) {
        int a = 20;
        int b = 30;
        int c = 10;

        int max;
        if (a >= b){
            max = a;
        } else {
            max = b;
        }

        if (c > max) {
            max = c;
        }
    }


第4の方法は現実生活の中で潜在意識の中のアルゴリズムかもしれない.この方法は前の方法と少し似ているように見えますが、前の方法はaが最大であると仮定し、if-elseだけで結果を得ることができます.これはmaxに大きなものを与えた後、cと比較します.  大家有没有发现,只要是涉及到 分支结构 的算法基本都是大同小异,所以说只要我们想清楚里面的道理,还是比较容易的.私も退屈で家でこれを整理して何をしているのか分かりません.
5.ifネスト
 public static void main(String[] args) {
    int a = 20;
    int b = 30;
    int c = 10;

    int max;
    if (a >= b) {
        if (a >= c) {
            max = a;
        } else {
            max = c;
        }
    } else {
        if (b >= c) {
            max = b;
        } else {
            max = c;
        }
    }
 }

  这个代码看起来是所以算法中最长的,但它和第二种采用 逻辑运算符 && 有异曲同工之妙,所以说我们平时最不起眼的求 max 值居然罗列下来有这么多条!驚いたのではないでしょうか.しかし、基本的には1つの輪の中ででたらめを言っているので、卵はありません.私が論理能力を鍛えるためにでたらめを言っている文章と見ることができます.
注意点
 論理演算子について話した以上、簡単に&&&&(|||と同じ)の違いを話しましょうか.私たちはまずはっきりしなければなりません.&&と&結果は絶対に同じです.この点は絶対に変わらない.違いは、&&が頭がいいことです.前の1つがfalseであることを見ると、後ろのこの値や式の死活を気にする必要はありません.前がfalseであろうとtrueであろうと、すべて判断しなければなりません.これらを聞くだけで、&&演算速度は絶対に&より高いので、開発で最もよく使われているのはダブルとダブルです.これは小さな知識点で、みんなは後でこれを使って直接&&を使えばいいです.
道理はこんなに简単で、どうしてふだん思いもよらなかったのですか???多く発见して多く考えて多く総括して、私达にいっしょに学习の道で奋闘させます!!