zoukankan      html  css  js  c++  java
  • python day100-[day16-20]-2 数据结构和算法

    算法

    20200306


    • 渐近时间复杂度的大O标记
     - 常量时间复杂度 - 布隆过滤器 / 哈希存储
     - 对数时间复杂度 - 折半查找(二分查找)
     - 线性时间复杂度 - 顺序查找 / 桶排序
     - 对数线性时间复杂度 - 高级排序算法(归并排序、快速排序)
     - 平方时间复杂度 - 简单排序算法(选择排序、插入排序、冒泡排序)
     - 立方时间复杂度 - Floyd算法 / 矩阵乘法运算
     - 几何级数时间复杂度 - 汉诺塔
     - 阶乘时间复杂度 - 旅行经销商问题 - NP
    
    • 常用算法
    穷举法 - 又称为暴力破解法,对所有的可能性进行验证,直到找到正确答案。
    贪婪法 - 在对问题求解时,总是做出在当前看来最好的选择,不追求最优解,快速找到满意解。
    分治法 - 把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题,直到可以直接求解的程度,最后将子问题的解进行合并得到原问题解。
    回溯法 - 回溯法又称为试探法,按选优条件向前搜索,当搜索到某一步发现原先选择并不优或达不到目标时,就退回一步重新选择。
    动态规划 - 基本思想也是将待求解问题分解成若干个子问题,先求解并保存这些子问题的解,避免产生大量的重复运算。
    
  • 相关阅读:
    Redis面试题 总结
    C++ 自由存储区是否等价于堆?(转)
    线程同步方式
    epoll的原理 (一)(转)
    C/C++ 中 volatile 关键字详解(转)
    Linux堆内存管理
    找出数组中出现次数超过一半的数
    剑指offer-复杂链表的复制
    已知二叉树前序中序遍历重建二叉树
    Linux常用命令
  • 原文地址:https://www.cnblogs.com/damahuhu/p/12426713.html
Copyright © 2011-2022 走看看