zoukankan      html  css  js  c++  java
  • Analysis of Algorithms--preface

    Analysis of Algorithms:

    • First part of the course is focused on analysis.
    • Second part of the course is focused on design.

    The analysis of algorithm is the theoretical study.(算法分析是理论研究)

    The theoretical study of computer-program performance and resource usage.(理论研究是关于计算机性能和资源利用的研究)

    In programming, what is more important than performance?

    • correctness
    • simplicity
    • maintainability
    • cost
    • stability
    • functionablity
    • fearures
    • modularity
    • security
    • scalability
    • user-friendly

    Why do we bother and why study algorithms and performance?

    • Algorithms is the feasible versus infeasible.
    • Algorithms give you a lauguage of talking about program behavior.
    • We study algorithms performance is it's tons of fun.

    The problem of sorting(排序问题)

    • input:sequence<a1,a2,a3...an>
    • output:permutation<A1,A2...An>

    Such that:A1<A2<...<An

    Insertion-Sort:

    for (int i = 1; i < a.length; i++) {
                key=a[i];
                int j=i-1;
                while (j>=0&&a[j]>key) {
                    a[j+1]=a[j];
                    a[j]=key;
                    j--;
                }
                
                for (int k = 0; k < a.length; k++) {
                    System.out.print(a[k]+" ");
                }
                System.out.println();
                
            }
    }

    running time:

      one thing it depends on is the input itself.

    • Depends on input self(eg:already sorted)
    • Depends on input size(eg:6 elements vs 6*109)

      --parameterize things in the input size.

    • want upper bounds.guarantee to the user

    Kinds of analysis:

    • worst-case analysis(usually):T(n)=max time on any input of size n.
    • Average case analysis(sometimes):T(n)=expected time over all inputs of size n.
    • best-case analysis(bogus:假象)No good.

    What is insertion sorts worst-case time?

      Depends n computer.

    • relative speed (on same machine) 
    • absolute speed (on defferent machine)

    BIG Idea of algorithms:

    on same machine analysis algorithms performance use asymptotic analysis(渐进分析)

    asymptotic analysis:

    • ignore machine-dependent constants
    • look at the growth of the running time,look at growth of T(n) as n->∞

    asymptotic notation(渐进符号Θ)

    Θ-notation:

    • drop low order terms(弃去它的低阶级)
    • ignore leading constants(忽略前面的常量因子)
    • EX:3n3+90n2-5n+6046=Θ(n3)

    Insertion-Sort worst-case sorted:T(n)=∑Θ(j)=Θ(n2)

    Is insertion sort fast?

    It's turns out for small n it is moderately fast;but it is not at all for large n.

  • 相关阅读:
    一次函数(好难的一次函数)
    脱水缩合(大搜索)
    背单词
    仙人掌(cactus)
    LYK 快跑!(LYK别打我-)(话说LYK是谁)
    巧克力棒
    选数字(贪心+枚举)
    看程序写结果(program)
    np问题
    IUYYLIUIU
  • 原文地址:https://www.cnblogs.com/chuji1988/p/4008070.html
Copyright © 2011-2022 走看看