• 图解算法记录


    每个递归函数都有两个条件:基线条件和递归条件。

    编写涉及数组的递归函数时,基线条件通常是数组为空或只包含一个元素。

    def quicksort(arr):
        if len(arr)<2:
            return arr
        else:
            p=arr[0]
            less=[i for i in arr[1:] if i<=p]
            greater=[i for i in arr[1:] if i>p]
            return quicksort(less)+[p]+quicksort(greater)
    a=[2,6,1,9,3]
    print(quicksort(a))

    python中的字典dict

    散列表由键和值组成。在散列表 book 中,键为商品名,值为商品价格。散列表将键映射到值。

    phone_book = {} ←------与phone_book = dict()等效

    book=dict()
    book["apple"]=2.0
    book["cherry"]=5.0
    print(book)
    print(book["cherry"])
    
    
    {'apple': 2.0, 'cherry': 5.0}
    5.0

    在无向图中,每条边都是一个环。狄克斯特拉算法只适用于有向无环图。

    如果有负权边,就不能使用狄克斯特拉算法。

    狄克斯特拉算法这样假设:对于处理过的节点,没有前往该节点的更短路径。

    元素较少时算法的运行速度非常快,但随着元素数量的增加,速度
    会变得非常慢。
    涉及“所有组合”的问题通常是NP完全问题。
    不能将问题分成小问题,必须考虑各种可能的情况。这可能是NP
    完全问题。
    如果问题涉及序列(如旅行商问题中的城市序列)且难以解决,它
    可能就是NP完全问题。
    如果问题涉及集合(如广播台集合)且难以解决,它可能就是NP
    完全问题。
    如果问题可转换为集合覆盖问题或旅行商问题,那它肯定是NP完
    全问题。

    面临NP完全问题时,最佳的做法是使用近似算法。

    仅当每个子问题都是离散的,即不依赖于其他子问题时,动态规划才管用。

    垃圾邮件过滤器使用一种简单算法——朴素贝叶斯

    Google使用Simhash来判断网页是否已搜集。
    老师可以使用Simhash来判断学生的论文是否是从网上抄的。

  • 相关阅读:
    POJ 3084 Panic Room
    HDU 4111 Alice and Bob
    POJ 2125 Destroying The Graph
    HDU 1517 A Multiplication Game
    Codeforces 258B Little Elephant and Elections
    HDU 2448 Mining Station on the Sea
    ACM MST 畅通工程再续
    ACM DS 畅通工程
    ACM DS 还是畅通工程
    ACM DS Constructing Roads
  • 原文地址:https://www.cnblogs.com/wander-clouds/p/9125441.html
Copyright © 2020-2023  润新知