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和贪心更困难的算法一般很少考到。

  • 相关阅读:
    web版ssh的使用
    Django高级篇三。restful的解析器,认证组件,权限组件
    Django中的缓存(内存,文件,redis)
    Python使用redis
    跨域请求
    python发送邮箱
    登录服务器失败 IP 统计和处理方法
    centos中单进程监控
    编译搭建lnmp+zabbix
    Django+Uwsgi+Nginx项目部署文档
  • 原文地址:https://www.cnblogs.com/hzg1981/p/4576611.html
Copyright © 2011-2022 走看看