●递推法
●递归法
●穷举法
●贪心算法
●分治法
●动态规划法
●迭代法
●分支界限法
●回溯法
●费式数列
●巴斯卡三角形
●老鼠走迷宫
●骑士走棋盘
●八个皇后
●八枚银币
●生命游戏
●字符串核对
●双色,三色河内塔
●背包问题
●河内塔
●数组于简单排序
●栈与队列
●链表
●递归
●哈希表
●高级排序
●二叉树
●红—黑树
●堆
●带权图

●斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

●杨辉三角,是二项式系数在三角形中的一种几何排列,在中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。

●老鼠走迷宫,一只实验室的小老鼠被用来做迷宫智力实验。科学家在迷宫的一角放上一块奶酪,小老鼠要在最快时间内找到奶酪。

●算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

●算法可大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法,厄米变形模型,随机森林算法。

一个算法应该具有以下五个重要的特征:
●有穷性
算法的有穷性是指算法必须能在执行有限个步骤之后终止;
●确切性
算法的每一步骤必须有确切的定义;
●输入项
一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;
●输出项
一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
●可行性
算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。

经典的算法有很多,如欧几里德算法,割圆术,秦九韶算法。

随着计算机的发展,算法在计算机方面已有广泛的发展及应用,如用随机森林算法,来进行头部姿势的估计,用遗传算法来解决弹药装载问题,信息加密算法在网络传输中的应用,并行算法在数据挖掘中的应用等。

●同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。
●时间复杂度
算法的时间复杂度是指执行算法所需要的计算工作量。一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做。
T(n)=Ο(f(n))
因此,问题的规模n 越大,算法执行的时间的增长率与f(n) 的增长率正相关,称作渐进时间复杂度(Asymptotic Time Complexity)。
●空间复杂度
算法的空间复杂度是指算法需要消耗的内存空间。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间复杂度的分析要简单得多。
●正确性
算法的正确性是评价一个算法优劣的最重要的标准。
●可读性
算法的可读性是指一个算法可供人们阅读的容易程度。
●健壮性
健壮性是指一个算法对不合理数据输入的反应能力和处理能力,也称为容错性。

●数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。

●集合
●线性结构
●树形结构
●图形结构
●数据结构

●数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

●排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。在各个领域中考虑到数据的各种限制和规范,要得到一个符合实际的优秀算法,得经过大量的推理和分析。

●图论〔Graph Theory〕是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。

●动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。

●数论大致可分为初等数论和高等数论。初等数论是用初等方法研究的数论,它的研究方法本质上说,就是利用整数环的整除性质,主要包括整除理论、同余理论、连分数理论。高等数论则包括了更为深刻的数学研究工具。它大致包括代数数论、解析数论、计算数论等等。

●数值分析(numerical analysis)是研究分析用计算机求解数学计算问题的数值计算方法及其理论的学科,是数学的一个分支,它以数字计算机求解数学问题的理论和方法为研究对象,为计算数学的主体部分。

Java job interview:算法的经典与数据结构的程序图论相关推荐

  1. java弱签名_14条经典的编程签名(程序员个性签名)

    之前收集过<22条经典的编程签名(程序员个性签名)>,发现还有一些未收录的,下面这些引言也很有意思的,希望你喜欢. "The first 90% of the code acco ...

  2. java 所有路径算法_经典算法题:二叉树的所有路径

    一.题目 给定一个二叉树,返回所有从根节点到叶子节点的路径. 二.思路 回溯算法 三.实现 public List binaryTreePaths(TreeNode root) { List res ...

  3. java实现apriori算法_七大经典、常用排序算法的原理、Java 实现以及算法分析

    0. 前言 大家好,我是多选参数的程序员,一个正再 neng 操作系统.学数据结构和算法以及 Java 的硬核菜鸡.数据结构和算法是我准备新开的坑,主要是因为自己再这块确实很弱,需要大补(残废了一般) ...

  4. 数据结构与算法 相关经典书籍推荐

    如果计算机系只开三门课,那么这三门课就一定是:离散数学,数据结构与算法,编译原理 .如果只开一门课,那剩下的就一定是:数据结构与算法 . Niklaus Wirth说:算法+数据结构=程序,不说废话了 ...

  5. java 算法_Java 浅谈数据结构和算法

    以前不管自己还是朋友在面试java工程师岗位的时候,都会被问到这样的问题: "介绍下java中的数据结构和算法". 很多朋友被问到的时候发现无从下口,甚至特别是一些初级java工程 ...

  6. 尚硅谷Java数据结构和java算法,韩顺平数据结构和算法课后作业01

    尚硅谷Java数据结构和java算法,韩顺平数据结构和算法课后作业第一题 要求: 1)在前面的基础上,将稀疏数组保存到磁盘上,比如map.data 2) 恢复原来的数组时,读取map.data进行恢复 ...

  7. java架构师进阶之独孤九剑:数据结构以及书籍推荐

    这是整个java架构师连载系列,分为9大步骤,我们现在还在第一个步骤:程序设计和开发->数据结构与算法. " 如果说 Java 是自动档轿车,C 就是手动档吉普.数据结构呢?是变速箱的 ...

  8. java贪心,java实现贪心算法

    并证明了贪心算法解决此问题的有效性,且进行了实例验证,并进 行了复杂度分析,此算法是解决资源组合规划问题较好的方法. 关键词:贪心算法;java 程序;复杂度分析;...... 数据结构与算法 实验名 ...

  9. java hanlp分词_Hanlp分词实例:Java实现TFIDF算法

    算法介绍 最近要做领域概念的提取,TFIDF作为一个很经典的算法可以作为其中的一步处理. 关于TFIDF算法的介绍可以参考这篇博客http://www.ruanyifeng.com/blog/2013 ...

最新文章

  1. 人脑是怎么防止梯度消失和梯度爆炸的?
  2. 数字图像处理- 3.6 锐化空间滤波器
  3. typedef的用法
  4. 修改图片src_【学习园地】企业SRC搭建
  5. SetupFactory安装制作心得
  6. 帝国cms数据库php调用tag,帝国CMS列表内容模板调用TAG的两种方法
  7. 总线全称_一篇文章讲透I2C总线协议
  8. (转)券商IT研发现状:一年最多花5亿 中小公司靠外包
  9. r语言 python 股票_如何用R语言下载到国内股票数据?
  10. 如何选择物业管理软件,五大误区需要避免
  11. 天猫魔盘显示无法连接到服务器,天猫魔盘无法上网 天猫魔盘不能上网怎么办...
  12. 网页设计与制作教程(第2版)刘瑞斯+课本演练代码
  13. JAVA设计模式征服之路-00-设计模式简介
  14. R语言初级教程(02): RStudio的使用
  15. Haswell芯配独显 华硕F450JF全新上市
  16. XBee zigbee 使用指南--- XBee模块输入和输出
  17. 计算机辅助设计软件应用答案,专科《计算机辅助设计软件的应用》_试卷_答案.doc...
  18. 往事如烟 - 老钟1
  19. 表白墙源码/可用作博客论坛都是不错的
  20. 第一章 程序设计和C语言

热门文章

  1. RPA解决:python GSM 模块 - 电脑接收短信
  2. 虚拟化技术比较:OpenStack、KVM、VMWare和Docker
  3. debian 8显示中文
  4. 盘点2014上半年网络信息泄密事件
  5. 重定向URL中文乱码问题
  6. Python爬虫:Selenium模拟Chrome浏览器爬取淘宝商品信息
  7. nom总结与实习经历
  8. 无需root即可Android手机映射到电脑玩手机网游,做手机办公(有源码及效果视频下载)
  9. Linux下查看显卡信息
  10. oracle中procedure用法,oracle中的procedure编写和使用详解