算法无好坏,优化最关键

算法是一个思考过程,独特的见解很重要!!!

撇开实际问题,单纯讨论一个算法的好坏优劣是没有意义的,在解决一个实际问题中,“好的算法”并不一定有效,“差的算法”并不一定就不是最适合的算法,往往一个算法与实际问题的契合度最为关键。
那么什么是最好的算法:针对一个实际问题,考量各方面的因素,选择一个算法的大的方向和众多可以优化的小点,不断去优化的算法是针对这个问题的最好的算法

可以考量的潜在因素

1 考虑数据有什么特征规律,数据的存出状况,数据结  构,数据量
2 实际问题中我们可用的计算资源,计算效率的要求?等等都是考量因素。
3 稳定性要求?总体性要求?性能要求?速度和效率要求?算法的评估标准是什么?

4 我们真正要解决的是什么问题?

解决算法面试问题的整体思路(宏观):

1 题目中的条件:数据规模、算法复杂度、空间需求
2 当没有思路的时候(从哪里入手):
(a)给自己几个简单的测试用例,试验一下
(b)不要忽视暴力解法,暴力解法通常是思考的起点
(c)优化算法:遍历常见的算法思路、数据结构、空间和时间的交换(哈希表)
预处理信息(排序)、在瓶颈处寻找答案
(d)实际编写问题

基础准备:

1 各种排序算法(特点以及比较)
2 基础数据结构和算法的实现:堆、二叉树、图
3 基础数据结构的使用:链表、栈、队列、哈希表、图、Trie、并查集...
4 基础算法:深度优先、广度优先、二分查找、递归...
5 基本算法思想:递归、分治、回溯搜索、贪心、动态规划...

tip: Sunweitom 8207136

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值