LeetCode括号匹配性能问题

来源:2-4 关于 Leetcode 的更多说明

黑白琴键3675322

2023-12-03 21:37:04

https://img1.sycdn.imooc.com/climg/656c840c0963c5e616400472.jpg

我在LeetCode上对括号匹配的问题分别使用java的Stack和自己实现的Stack提交了两次答案,但是自己实现的Stack的性能好像比java自带的Stack性能略差一点,可能的原因是什么?

写回答

1回答

liuyubobobo

2023-12-07

首先,近乎对于任何语言,使用内建的库比自己建立的库性能更高都是极其正常的。甚至可能会高十倍百倍的级别(尤其是对于解释性语言来说。比如 python 或者 js)。因为直接调用内建库,可以使用语言自身的优化。


其次,从性能测试的角度,尤其是提交给 leetcode 的性能测试结果,不要说 1ms,10ms 都可以忽略不计。因为不同的网络环境,leetcode 服务器的状态,都会影响这个结果。


整体来说,我们学习算法,首先关注实现功能;其次从性能的角度,主要关注的是复杂度级别的变化。在这个课程的后续,你就会看到,不管使用多么快的语言,书写的多么优美的冒泡排序法,在大数据量下,都将完败归并排序或者快速排序,哪怕这个归并排序算法或者快速排序算法,是使用非常慢的语言,实现的非常烂。这种复杂度级别产生的性能差距,是算法领域关注的核心。


当然,在语言层面也有一些优化,一些最佳实践,一些让编译器更容易优化的写法,或者更容易被计算机体系结构快速执行的方式。但这些方式不是算法这门课程关注的重点,应该在学习各种语言的时候关注,包括高性能计算领域和微优化领域。可以参考这里的讨论:https://class.imooc.com/course/qadetail/348026


继续加油!:)

0

算法与数据结构

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

2614 学习 · 1087 问题

查看课程