Java教程分享算法系列之算法概述
好程序员Java培训分享算法系列之算法概述,开篇:算法,一个听起来很厉害的词。也是最近几年特别火的词。很多大学生都想学习算法,因为它是大厂和高薪工作的代名词。但是有关算法系列的书籍或者文章不多,或者说是成系列的、从入门到精通的文章不多,从而导致我们学习起来比较困难。于是,我就计划写一系列适合大学生学习的算法文章,让更多的人能学习算法。本系列的所有算法实现将采用java代码实现,所以需要有一定的java基础。
什么是算法?
在Collins大词典中有如下解释:
An algorithm is a series of mathematical steps, especially in a computer program, which will give you the answer to a particular kind of problem or question.
在计算机中,由计算机程序(可以是java、c、Python等),通过一系列的数学步骤,解决一个特定问题的方法就是算法。
大白话理解,算法就是在计算机中实现数学逻辑或者数学公式的代码。
学习算法需要掌握的知识
1、任何一种编程语言,java、c、c++、Python等。
2、数据结构,不如数组、链表、树、图等
3、有一定的数学功底,如果数学知识忘记不要紧,文章中如果涉及到高中以上数学知识的话,也会带着大家复习一下数学。
算法和数学联系和区别
上面我们解释什么是算法的时候,提到了数学,那么数学和算法是什么关系呢?是不是算法就等于数学呢?带着这样的疑问,我们来看下面的这个例子。
1、一道小学数学题举例:
题目:请计算1+2+3+4+…+N的和。
数学公式:(1+N)*N/2
上面这个公式就是数学公式,大家应该没有异议吧。因为我们在小学学习数学的时候就见过这样的一道数学题。那么同样的数学题用java代码怎么实现呢?
2、Java代码实现:
/**
- 计算1+2+3+…+100的和
- @param n
- @return 返回总和
*/
public static int algorithm(int n){
int sum=0; for (int I = 1; I <= n; I++) { sum+=I; } return sum;
}
上面这个代码,稍微懂程序的人都能看明白,写得没有错,就是一个地道的java代码在计算1到n的总和。
3、Java算法实现:
public static int algorithm2(int n) {
return (1+n)*n/2;
}
上面代码是java算法实现的1到n的总和,有同学可能有疑问,这不就是数学公式吗,写到代码里面就是算法了?对,这就是算法。当然,上面这个算法非常简单,简单到方法体内部就是一个数学公式;也会有非常复杂的数学逻辑需要有很多行代码才能实现。
总结:用代码实现的数学叫做算法。
学习算法为什么要掌握数据结构
算法必然会有数据的输入和输出,比如上面的1到100的算法。入参就是输入的数据,返回值就是输出的数据。往往有一些算法在执行之前,需要先整理数据(就好比把数据存起来),整理数据必然要涉及到数据结构。数据提前整理的比较好,算法可能就比较简单;数据比较杂乱,算法可能就比较复杂。
算法的作用
为一个任务找到最合适的算法,可以大大提升计算机的性能。算法可以在固定的硬件条件下来提升系统的性能;如果没有算法,我们只能靠增加机器设备来提升系统性能。所以,算法有助于系统优化。往往在实际开发中,为了找到一个最合适的算法,我们需要反复且复杂的数学分析,也叫做算法分析。
总结
算法是一种特殊的数学形式,掌握算法,不论是java程序员或者c程序员,都是有非常大的意义,至少写出来的代码性能好。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
关于阿里云NAS的几大特点介绍【教程】
阿里云NAS主是针对阿里云服务器、弹性高性能计算和容器服务等计算节点的文件存储服务。 阿里云NAS的定义 作为可共享访问、弹性扩展、高可靠以及高性能的分布式文件系统的NAS 。它依赖于 POSIX 文件接口,原生的支持操作系统,不仅提供共享访问还保证数据一致性和锁互斥。简单的可扩展文件存储NAS配合阿里云服务器可以实现多个ECS实例可以同时访问 NAS 文件系统,而且存储数据会根据用户添加和删除文件而自动弹性增长和减少,可以为多个实例应用提供数据的互通。 NAS的6大优点 1) 使用简单: 一键即可完成文件系统的创建工作,不需要再部署和维护文件系统。 2) 安全: 通过 RAM可以 实现的资源访问控制,基于VPC实现的网络访问隔离,结合文件存储 NAS 的传输加密与存储加密特性,保障数据不被窃取或篡改。 3)成本 阿里云 NAS 文件系统可以同时放到多个云计算节点上,由这些节点共享访问,从而节约大量拷贝与同步成本。 一个 阿里云NAS 文件系统的性能能够随存储容量线性扩展,使用户无需购买高端的文件存储设备,大幅降低硬件成本。 使用 阿里云NAS文件存储,您只需为文件系统使用的存储空间付...
- 下一篇
Python 四舍五入函数 round
小数位的四舍五入在项目中经常用到。 你可能有注意到 round 函数不能真正做到四舍五入。 round() 函数作用就是,返回浮点数x的四舍五入值。 round( x [, n] ) 简单来说就是在浮点运算的时候丢精度。 这个与计算机系统的设计是有关系的,计算机是使用 2 进制进行计算的的,如果我们常用的数学计算或者科学计算,计算机是会丢精度的。 因此我们的解决方案其实非常简单就是使用 Decimal 来进行数学计算。 浮点计算丢精度的问题不仅仅是 Python 会遇到的问题,Java 、 C/C++ 都会遇到这个问题。 可以考察下面的代码: print(round(2.3, 2))print(round(2.45, 1))print(round(2.675, 2)) print(Decimal(1.325)) print(Context(prec=3, rounding=ROUND_HALF_UP).create_decimal('2.675')) 上面程序的输出为: 2.32.52.671.3249999999999999555910790149937383830547332763...
相关文章
文章评论
共有0条评论来说两句吧...