• 程序员须知的基础算法整理


    算法一:快速排序算法

    http://blog.csdn.net/v_july_v/article/details/6116297

    分治处理:选主元将一组数分为2组,一组都比主元小,另一组都比主元大;然后递归上述方法即对每个组分别用新主元排序再分成新的组,如此递归到排序结束。

    算法二:堆排序算法

    http://www.cricode.com/977.html

    http://blog.csdn.net/morewindows/article/details/6709644

    构造大顶堆和小顶堆,利用堆顶是最大和最小元素的特性,将最值和最后一个元素交换,最后一个元素就变为了有序元素;再调整无序元素堆,重复交换到无序元素堆得最后一个元素,依次生成所有有序元素。

    算法三:归并排序

    http://www.cricode.com/1333.html

    算法四:二分查找算法

    用于有序数组查找特定元素:与数组中间值比较,不停二分迭代得到结果,时间复杂度为Ο(logn)

    算法五:BFPRT(线性查找算法)

    http://blog.csdn.net/v_JULY_v/article/details/6370650

    算法六:DFS(深度优先搜索)

     http://www.cnblogs.com/skywang12345/p/3711483.html

    算法七:BFS(广度优先搜索)

    2种搜索顾名思义,关键看图。

    算法八:Dijkstra算法

    http://www.cnblogs.com/skywang12345/p/3711512.html

    最短路径实现:引进两个集合S和U。S的作用是记录已求出最短路径的顶点(以及相应的最短路径长度),而U则是记录还未求出最短路径的顶点(以及该顶点到起点s的距离)。

    算法九:动态规划算法

     http://www.hawstein.com/posts/dp-novice-to-advanced.html

    找到递推公式算最优解,类似归纳演绎;推算N个状态,找到更一般的递推公式。

    算法十:朴素贝叶斯分类算法

    朴素:假设条件独立。

    分类:求最大条件概率,也可最大似然。

    现代贝叶斯:层次贝叶斯,因素的因素,条件还有其他条件约束。

  • 相关阅读:
    BZOJ 4245: [ONTAK2015]OR-XOR
    BZOJ 2535: [Noi2010]Plane 航空管制2
    COGS 2551. 新型武器
    cogs2550. 冰桥,升起来了!
    大数模板
    uva 1513(线段树)
    uva 11525(线段树)
    poj 3368(RMQ模板)
    hdu 4686 Arc of Dream(矩阵快速幂)
    poj 3321 Apple Tree(树状数组)
  • 原文地址:https://www.cnblogs.com/chenzhefan/p/4643729.html
Copyright © 2020-2023  润新知