的&QUOT现实世界的实现;经典算法"算法、现实、经典、世界

2023-09-12 21:17:02 作者:沧海桑田、少年为她独守空

我不知道有多少你已经实现了计算机科学的 经典的算法之一 像 Dijkstra算法或数据结构(如二叉搜索树)中的现实世界,不是学术项目?

I wonder how many of you have implemented one of computer science's "classical algorithms" like Dijkstra's algorithm or data structures (e.g. binary search trees) in a real world, not academic project?

是否有利于我们dayjobs在了解这些算法和数据结构时,有万吨的库,框架和API,给你相同的功能?

Is there a benefit to our dayjobs in knowing these algorithms and data structures when there are tons of libraries, frameworks and APIs which give you the same functionality?

推荐答案

会意,或能够理解这些算法是非常重要的,这些都是你的交易的工具。这并不意味着你必须要能够实现A *在一个小时内从内存中。但是,你应该能够找出使用红黑树,而不是一个正常的不平衡树的优点是如此的您的可以决定是否需要与否。的您的需要能够判断算法的健身解决你的问题。

Knowing, or being able to understand these algorithms is important, these are the tools of your trade. It does not mean you have to be able to implement A* in an hour from memory. But you should be able to figure out what the advantages of using a red-black tree as opposed to a normal unbalanced tree are so you can decide if you need it or not. You need to be able to judge the fitness of an algorithm for solving your problem.

这听起来太校masterish但这些经典算法还没有发明能够给大学生们的考题,他们发明了解决问题或改进现有的解决方案,就像数组,链接的列表或堆栈是积木写一个程序,是其中的一些。就像在数学,你从加减积分和微分移动,这些先进的技术,这将帮助你解决是在那里的问题。

This might sound too school-masterish but these "classical algorithms" were not invented to give college students exam questions, they were invented to solve problems or improve on current solutions, just like the array, the linked list or the stack are building blocks to write a program so are some of these. Just like in math where you move from addition and subtraction to integration and differentiation, these are advanced techniques that will help you solve problems that are out there.

他们可能不能直接适用于您的问题或工作的情况,但是从长远来看,知道他们会帮助你作为一个专业的软件工程师。

They might not be directly applicable to your problems or work situation but in the long run knowing of them will help you as a professional software engineer.

要回答你的问题,我做了A *的实现最近的一场比赛。

To answer your question, I did an implementation of A* recently for a game.