zoukankan      html  css  js  c++  java
  • 612.1.002 ALGS4 | Analysis of Algorithms

    我们生活在大数的时代
    培养数量级的敏感!
    Tip:见招拆招

    • 作为工程师,你先要能实现出来。
    • 充实基础,没有什么不好意思
    • 哪怕不完美。但是有时候完成比完美更重要。
    • 之后再去想优化

    P.S.作者Robert Sedgewick的导师是Knuth(高德纳!)

    Conclusion First

    1.Running Time

    • Operation table

    2.Memory

    1 SOP - Analysis

    2 Observations

    • Measuring the running time - automatic

    public class Stopwatch(part of stdlib.jar/algs4.course)

    
        public static void main(String[] args) {
            In in = new In(args[0]);
            int[] a = in.readAllInts();
    
            Stopwatch timer = new Stopwatch();
            int count = count(a);
            StdOut.println("elapsed time = " + timer.elapsedTime());//time since creation (in seconds)
            StdOut.println(count);
        }
    
    
    
    

    3 Mathematical Model - Knuth(高德纳!)

    Simplification 1: cost model

    Simplification 2: tilde notation

    approximate

    工程近似

    • Bottom line. Use cost model and tilde notation to simplify counts.

    4 Order of growth

    • Operation table

    5 Binary Search - code 二分搜索

    不看代码自己写

    public static int binarySearch(int[]a,int key)
            {
            int lo=0;
            int hi=a.length-1;
            while(lo<=hi){
                int mid=lo+(hi-lo)/2;
                if(key>a[mid])lo=mid+1;
                else if(key<a[mid])hi=mid-1;
                else return mid;
            }
            return-1;
            }
    

    6 Memory

    Typical memory usage of Java

    Object overhead - 对象开销

    QuickUnion

  • 相关阅读:
    DevExpress v17.2新版亮点——CodeRush篇(三)
    DevExpress v17.2新版亮点——CodeRush篇(二)
    DevExpress v17.2新版亮点——CodeRush篇(一)
    MySQL性能优化
    什么是MongoDB?
    Redis的两种持久化方式对比
    Redis
    十六、Node.js-fs模块-流
    js中const,var,let区别
    十五、Node.js-fs模块(中)
  • 原文地址:https://www.cnblogs.com/Neo007/p/10333985.html
Copyright © 2011-2022 走看看