java algorithm

作者:原创时间:2022-03-23
文档

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] + " 对");

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
iphone呼叫失败是什么原因 java android java annotation java ant java apns 苹果13蓝牙搜索不到设备怎么办 java append java application java apriori java archive java arcsin java arccos java arctan java args java arrays.sort java ascii java asmx java aspectj java aspose java assembly ipad2是哪年的 java akka java aggregation java aes加密 java advice java addall java add java actuator 西北五省是哪五省 java activity java activiti 瓮安县属于哪个市 java active 茉莉花茶是绿茶吗 java a++和++a的区别 熊猫只有中国才有的吗 idea新建一个java项目 java 32bit java -xms idea新建java项目