古典的なガウスアルゴリズム、一緒にデータ構造とアルゴリズムを学びましょう!


プログラミングのテクニックを高めたい人にとって、データ構造とアルゴリズムは必修で、最も古典的な物語を挙げて初心者たちにアルゴリズムの偉大さを説明します.
話はずいぶん前...、ある数学の授业の上で、先生は学友达に1つの算数をさせます:1时间以内に1+2+3を算出します....+99+100の結果、ガウスという同級生がいて、20分もかからないうちに結果が出ても、先生は驚いて、どう計算したのか教えてもらいました.もとは、彼はこれらの数字に1つの法則があることを発見しました:第1の数字に最後の数字を加えて101に等しくて、第2の数字に最後から2番目の数字を加えて結果も101で、つまり:1+100=101、2+99=101、3+98=101.......このようにして、全部で50個の101が得られ、この算術問題の結果は自然に50*101=5050である.
法則に基づいて1つの公式を得た:n(n+1)/2
1からnまで加算した結果です
伝統的な方法では、私たちは馬鹿に1+2=3、3+3=6、6+4=10を計算します......=5050,次に従来の方法とGaussアルゴリズムの違いをプログラムで表す
var count,max int
//   100
max = 100


//    
count = 0
for i:=1;i<=max;i++ {
    count = count + i
}
fmt.Print(count)

//=============          ================

//    
count = max(max+1)/2
fmt.Print(count)

従来の方法で計算すると、コンピュータは100回のサイクルをしなければならないが、ガウスアルゴリズムは1回の計算しか必要ないことが明らかになった.もしmax=1億円だったら?従来の方法では1000000回の計算操作をループしますが、ガウスアルゴリズムは依然として1回の計算しか必要ありません.これが天才アルゴリズムの差です.
一方,データ構造を学習することで,両アルゴリズムの複雑さはO(n)とO(1)であることが分かる.もっと深いものはみんなで勉強しなければなりません.私もそのレベルではありません.ただレンガを投げて玉を引いて、入門していない初心者に粗浅なことを話します.