java algorithm是什么,让我们一起了解一下?
algorithm是在数学(算学)和计算机科学之中,为任何良定义的具体计算步骤的一个序列,常用于计算、数据处理和自动推理,算法的核心是创建问题抽象的模型和明确求解目标。
衡量算法是否高效主要从哪几个方面来分析?
1、简单性和清晰度
一般我们都希望算法越简单越清晰就越好,但是要保证效率为前提。可是,往往我们在复杂的项目开发中所遇见的问题比较复杂,对时间和空间效率的要求也较高,因此,算法一般都会比较复杂。
2、空间效率:这里的空间效率并不是指算法代码占用的内存指令空间,而是指代码中的数据分配(变量与变量所引用值的分配)以及方法调用所使用的内存(调用栈的空间分配)。
比如,我们常用的递归,虽然会使代码清晰简单,但是内存的使用也会大大提高。理想的程序所使用的内存应该和数据及方法调用所占用内存相等。但事实总是会有些额外的开销,因此,空间效率也是我们衡量算法的方面之一。
3、时间效率:针对同一任务所使用的不同算法所执行的时间都会不同。
比如:在一个数据集合中查找数据,我们会从第一个数据开始查找,一直找到需要的数据为止,如果查找数据存在,则这种查找方式(称之为线性查找)一般要查找半个列表。然而,如果数据的排放是有序的,则通过另一种查找方法会更有效,即二分查找法,首先从集合的中间开始,如果查找值在中间值的前面,则从集合的前一半重复查找,否则从后一半查找,每执行一次则将查找的集合减少为前一次的一半。
那么我们如何使用algorithm来进行实战操作?
案例:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?
int[] arr = new int[20]; // 第一个月和第二个月兔子的对数都是1 arr[0] = 1; arr[1] = 1; for (int x = 2; x < arr.length; x++) { arr[x] = arr[x - 2] + arr[x - 1]; } System.out.println("第二十个月的兔子有 " + arr[19] + " 对");
以上就是小编今天的分享了,希望可以帮助到大家。