算法不应该成为你的“绊脚石”,只“怪”我没有早点整理这篇文章

什么是算法?

相信每一个程序员应该都知道这样一个公式 “程序=数据结构+算法”。

数据结构是数据的组织形式,可以用来表现特定的对象数据。

因为不同的数据结构所采用的处理方法不同,计算的复杂程度也不同,因此算法往往依赖于某种某种数据结构。数据结构是算法实现的基础。

算法,从字面意义上解释,就是用于计算的方法,通过该这种方法可以达到预期的计算结果。目前,被广泛认可的算法专业定义是:算法是模型分析的一组可行的,确定的,有穷的规则。通俗的说,算法也可以理解为一个解题步骤,有一些基本运算和规定的顺序构成。但是从计算机程序设计的角度看,算法由一系列求解问题的指令构成,能根据规范的输入,在有限的时间内获得有效的输出结果。算法代表了用系统的方法来描述解决问题的一种策略机制。

完成同一件事的不同的算法完成的时间和占用的资源可能并不相同,这就牵扯到效率的问题。算法的基本任务是针对一个具体的问题,找到一个高效的处理方法,从而完成任务。而这就是我们的责任了。

算法的五个特征:

  1. 一个典型的算法一般都可以抽象出5个特征:
  2. 有穷性:算法的指令或者步骤的执行次数和时间都是有限的。
  3. 确切性:算法的指令或步骤都有明确的定义。
  4. 输入:有相应的输入条件来刻画运算对象的初始情况。
  5. 输出:一个算应有明确的结果输出。
  6. 可行性:算法的执行步骤必须是可行的。

而现在在面试过程中,除了一些像batj大厂之外,对于算法的考察逐渐趋于平常化,甚至一些中小型公司都会考察手写算法,所以在面试之前,很多的程序员都会临时抱佛脚,去各种在leetcode上刷题,或者怎么样,但是刷题的时候,又不知道该怎么刷,没有什么具体概念,那为什么不从平时就开始准备呢?有的朋友会说,没有答案,没有知道,不成体系,各种问题,为了帮大家解决这个问题,在1000G+的资料中,找到这一份文档,对于leetcode的算法题进行整理和分类,并将答案进行整理

下面就是这本书的目录,需要的朋友可以私信“算法”获取

线性表、字符串

算法不应该成为你的“绊脚石”,只“怪”我没有早点整理这篇文章

栈、队列、二叉树

算法不应该成为你的“绊脚石”,只“怪”我没有早点整理这篇文章

排序、查找、枚举、优先搜索

算法不应该成为你的“绊脚石”,只“怪”我没有早点整理这篇文章

分治法、贪心法、动态规划、图、细节实现

算法不应该成为你的“绊脚石”,只“怪”我没有早点整理这篇文章

内容展示

算法不应该成为你的“绊脚石”,只“怪”我没有早点整理这篇文章

这本书基本涵盖了算法常各种类型的题目,并且有相应的答案可以进行参考,在平时闲来无聊的时候,一个pad和看电子书差不多,而且,看书有一个非常大的好处是可以做笔记和多次重复进行练习,没有时间和地点的限制

需要这本书以及更多资料的的朋友,欢迎点赞+关注+转发,然后私信“资料”获取

文章首发公众号:Java架构师联盟,每日更新技术好文,欢迎大家关注

原创文章 106 获赞 37 访问量 4008

猜你喜欢

转载自blog.csdn.net/weixin_42864905/article/details/105733875