[計算機アルゴリズム]C 2.学習アルゴリズムの準備


사진을 클릭하면 PDF 정리본 다운로드 링크로 이어집니다.

🧐 2.1アルゴリズムYes


  • アルゴリズムとは

  • 問題を解決する手順または方法

  • コンピューターを使って解決しなければならない.

  • 入力を入力し、結果「解」(答え)を出力します.
  • アルゴリズムの一般的な特性
  • プロパティの説明は、指定した入力に対して正確性を持たなければならない.(ランダムアルゴリズムを除く)実行可能アルゴリズムの各ステップは、コンピュータ上で実行する必要があります.有限アルゴリズムは有限時間内に終了しなければならない.効率アルゴリズムが効率的であればあるほど、その価値は高くなります.このアルゴリズムは、常に一般的なタイプの問題に適用できる必要があります.決定アルゴリズムは、同じ入力に同じ出力を要求する.

    🧐 2.2最初のアルゴリズム

  • ユークリッドの최대공약수 알고리즘最初のアルゴリズムは
  • で、紀元前300年ごろに作成された.
  • の最大公約数は、2つの自然数の中で最大の公約数
  • である.
  • 2個の自然数の最大承諾数は큰 수에서 작은 수를 뺀 수와 작은 수와의 최대공약수に等しい.
  • 👨🏻‍🔬 ユークリッドの最大公約数アルゴリズムでは,減算法の代わりに除算法を用いて解を迅速に見つけることができる。


    👩🏻‍💻 意図コード表現なら?

    Alg EuclidRecur(a, b)
    
    1. if b == 0 return a
    
    2. return EuclidRecur(b, a mod b)

    👨🏻‍🔬 複文の代わりに複文を使えば、もっと早く太陽を見つけることができます。


    👩🏻‍💻 意図コード表現なら?

    Alg EuclidIter(a, b)
    
    input integer a, b (a >= b)
    output integer gcd
    
    1. gcd <- 1
    
    2. for i <- 1 to b
        if(a % i == 0 && b % i == 0)
            gcd <- i
    
    3. return gcd

    👨🏻‍🔬 重複文を変更すると、より効率的なアルゴリズムになります。


    👩🏻‍💻 意図コード表現なら?

    Alg EuclidIterDown(a, b)
    
    input integer a, b (a >= b)
    output integer gcd
    
    1. gcd <- 1
    
    2. for i <- b down to 1 
        if(a % i == 0 && b % i == 0)
            return i

    🧐 2.3アルゴリズムの表示方法

  • の一般的なアルゴリズムは의사 코드(pseudo code)であり、
  • を表す.
  • アルゴリズムの各ステップは、コンピュータプログラミング言語だけでなく、通常の言語で記述することができる.
  • で利用可能な方法
  • 常用語
  • コード表示
  • フローチャート
  • 以降省略
    時間の複雑さなど.データ構造と同じ