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程序员,都是有非常大的意义,至少写出来的代码性能好。

相关文章
|
1月前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
70 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
18天前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
18天前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
18天前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
|
27天前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。
66 2
|
1月前
|
Java 数据库连接 编译器
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
|
1月前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
本系列教程笔记详细讲解了Kotlin语法,适合希望深入了解Kotlin的开发者。对于需要快速学习Kotlin的小伙伴,推荐查看“简洁”系列教程。本篇笔记重点介绍了Kotlin与Java混编的技巧,包括代码转换、类调用、ProGuard问题、Android库开发建议以及相互调用时的注意事项。
24 3
|
1月前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(2)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(2)
|
1月前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(1)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(1)
|
1月前
|
算法 Java Linux
java制作海报一:java使用Graphics2D 在图片上写字,文字换行算法详解
这篇文章介绍了如何在Java中使用Graphics2D在图片上绘制文字,并实现自动换行的功能。
103 0