zoukankan      html  css  js  c++  java
  • 算法学习系列之(1):常用算法设计方法

    0 可计算理论与常见面试算法分类

    可计算理论又被称为算法理论。

    1 什么是可计算的? 什么又是不可计算的?

    这涉及到一个非常著名的问题:NPC NP和P 问题。

    1 关于算法设计方法

    2 “五大常用算法”

    网上流产着一种“五大常用算法”的说法,它们分别是:  

    分治法(d&C devide&conquer)、

    贪心(greed)、

    动态规划(dp)、

    分支界限

    回溯法(典型应用就是八皇后算法)。

    而在数据结构与算法分析C语言描述 (Data Structures and Algorithm Analysis in C:Second Edition)一书中,列出了5种常用的算法设计方法,它们分别是:

    分治法、

    贪心、

    动态规划、

    随机算法

    回溯法。

    算法导论一书中,出现了上述算法设计方法中的以下几种:(分支界限和回溯法没有提及)

    分治法(二分法)

    典型代表为二分查找法(折半查找法),其缺点是要求待查表为有序表,且插入删除困难。 其查找时间复杂度为O(logn)

    贪心

    DP

    结论:

    通过取交集可以发现,作为码农的我们,要重点掌握分治、DP、贪心和回溯。又根据我的面试经历, 其中前三种分治、DP和贪心是重中之重。 比DP和贪心更困难的算法一般很少考到。

  • 相关阅读:
    C++11并发——多线程std::thread (一)
    css属性操作
    mustache使用
    layer常用方法代码
    layer使用
    java后台获取和js拼接展示信息
    生成二维码
    循环体中去除一部分特定的数据
    eclipse工具maven项目打包文件不是最新修改的
    sql server数据库备份单个表的结构和数据生成脚本
  • 原文地址:https://www.cnblogs.com/hzg1981/p/4576611.html
Copyright © 2011-2022 走看看