首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
V2EX  ›  奇思妙想

大家是怎么理解“算法”和“代码逻辑”两个词的

  •  
  •   sgissb1 · 25 天前 · 1319 次点击
    今天和一好基友在讨论一个代码里面的逻辑怎么写的问题,主要是为了修改两个队列中数据处理先后次序的问题。

    给定一个 A 队列和 B 队列,在需求中每次只允许取一个数据来处理,并且还要求是这两个队列里的。
    A 和 B 交错着取(这次取 A,那么下次就要取 B )。
    当我们在日常吹牛皮的很嗨时,边上就有哥们突然提到算法这个词,我们当时都一下子懵逼了。

    因为在我们的眼里,只是对两个 list 取数据先后的问题,仅仅是一种代码逻辑问题,实际上对最终产出影响很小。我们眼中的算法要么是具备很强的数学理论基础,要么是解决某种特定问题的总称。

    不晓得大家怎么看这两个词。码代码时间越久,总感觉这些定义很模糊了,有点事实而非。
    18 回复  |  直到 2019-06-21 17:03:14 +08:00
        1
    kyuuseiryuu   25 天前   ♥ 1
    代码 + 逻辑 = 算法
        2
    smile561607154   25 天前
    同楼主,我从来把我写的东西称为算法。
        3
    smile561607154   25 天前
    同楼主,我从来不敢把我写的东西称为算法。
        4
    agagega   25 天前 via iPhone
    然而这就是算法。
        5
    sikariba   25 天前
    这就是算法+1
        6
    mcfog   25 天前
    算法是用于解决问题的一系列指令描述。他说的没问题,并不是只有教科书上的或 leetcode 里的那些才叫算法。解决“交互消费两个不同队列”这个特定问题的方法,当然是算法

    an algorithm is a set of instructions, typically to solve a class of problems or perform a computation. -- Wiki

    至于“代码逻辑”,我不知道什么叫代码逻辑,甚至找不到这个词对应的英文是什么,不建议使用这个模糊不清的词
        7
    whwq2012   25 天前 via Android
    算法的五个特性:有穷性,确定性,输入,输出,可行性。
    简而言之,算法就是能解决问题的有穷步骤。
        8
    jmc891205   25 天前
    算法说白了就是一个可以精确描述的解决某种问题的方法
    生活中处处都是算法
        9
    baicheng10   25 天前
    这是算法。
    但我其实和楼主的看法比较类似,对词义上有狭义的偏见,心态吧,像上面说的,“不敢把自己写的东西称为算法”,有点像谦称一样。
        10
    airfling   25 天前
    能解决问题的就是算法
        11
    bzi   25 天前
    也算是算法,只不过因为简单而不好意思对外宣称是算法吧
        12
    zagfai   25 天前   ♥ 1
    code 是实实在在的,algo 是虚的
        13
    Norie   25 天前 via Android
    算法不就是计算的方法吗?
        14
    akira   25 天前
    一般说的算法 应该是指 搜索 查询 遍历 排序 的算法

    但是 广义上的算法,你这个确实也是能叫算法
        15
    pkookp8   25 天前 via Android
    我认为 与业务无关,可以抽象成特定问题的代码 叫做算法
    比如你这里
    与业务有关的代码,就叫做逻辑代码。
    比如我得先发消息 a,再发消息 b,否则报错

    但是我通常不会任何可抽象的问题都叫算法。比如我写了加减乘函数,算,但我不会说我今天写了一套算法
        16
    leishi1313   25 天前 via Android
    茴字的两种写法罢了,没必要争论。不同的代码逻辑可以是不同的算法,相同的算法可以有不同的代码逻辑,硬要细分侧重点是有不同,但是很多时候大家也会混着用的,这时候这俩基本就等于“程序的实现方法”
        17
    lyminghao   25 天前
    这俩词没啥区别吧。。。至少在定义上算法也没什么高大上的,只是实际使用中算法一般指比较高难度的算法 23333
        18
    enjoyCoding   24 天前
    一般业务上面的东西我喜欢用逻辑代称 不涉及业务只有数据结构或者想 lz 说的这种数据逻辑我称之为算法
    像 lz 这个问题 很自然的想到归并排序对吧
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3251 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 04:44 · PVG 12:44 · LAX 21:44 · JFK 00:44
    ♥ Do have faith in what you're doing.