• 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.

  • 相关阅读:
    HDU 6043
    HDU 6033
    HDU 6041
    HDU 6050
    HDU 6053
    HDU 6055
    HDU 6045
    HDU 6044
    HDU 6040
    ZUFE 1035 字符宽度编码(字符串)
  • 原文地址:https://www.cnblogs.com/chuji1988/p/4008070.html
Copyright © 2020-2023  润新知