循环部分用for each会对算法有影响吗?

来源:2-6 循环不变量

丹华抱一

2020-08-05 19:54:17

public class LinerSearch {
    public static <E> int search(E[]data,E target){
        for (E tar:
             data) {
            if(tar.equals(target)){
                return 1;
            }

        }
        return -1;
    }
}


写回答

1回答

liuyubobobo

2020-08-06

可能会有影响,是快一些还是慢一些根据语言内部的实现而定,对大多数语言,通常会快一些。


但是!非常关键的,我们学习算法,千万不要纠结这种“在具体语言实现方式”上的优化,意义没有那么大。在课程后续我也会强调这一点,并且有更多的例子。甚至很多所谓的“优化”,其实是不稳定的,换一个环境,优化就没用了。


而算法复杂度级别的优化,是真正稳定的优化。后续你就会看到,一个“低级”的排序算法,即使你在怎么优化,对于 10 万的数据都不能再 1 秒钟内完成;而对于更高级的排序算法,对100万级别的数据都能轻松在 1 秒内搞定。学习这种算法思路,是学习算法的目的!


继续加油!:)


4

算法与数据结构

波波老师5年集大成之作,算法与数据结构系统学习,考试、面试、竞赛通用

2602 学习 · 1086 问题

查看课程