zoukankan      html  css  js  c++  java
  • 算法图解学习笔记之算法

    一、二分查找

    二分查找的输入是一个有序的元素列表。如果元素在列表中,返回其位置,否则返回null

    二分查找每次都将列表分成两半,分别与查询元素对比。舍弃其中一半。然后再另一半中查找元素。

    每次都可以排除一半的元素。所以其效率为O(logn以2为底)

    二分查找查询的速度非常快,但是要求也比较严格,需要有序的列表。如果是无序的列表,就不能每次排查一半了。

    二、递归

    递归应该不算算法的一种,但是还是稍微提一下

    递归其实就是循环调用某个函数,直到满足条件才退出。

    递归中很重要的是基线条件和递归条件

    基线条件是退出递归的条件,如果没有基线条件,那么递归不会停止。陷入无限的循环中。

    递归条件是满足这些条件才循环调用函数。

    两者缺一不可

    三、快速排序(排序算法的一种,简称快排)

    快排经常会和递归一起使用

    其基线条件为,数组为空或者只包含一个元素。因为为空和只有一个元素就不需要排序了,直接返回。

    递归条件为,从数组中取出一个元素,将其他元素分成两部分,一部分大于该元素,一部分小于该元素(等于可以包含再大于或者小于之中,都可以),然后递归调用大于该元素的数组和小于该元素的数组。返回大于元素的数组(递归调用结束后有序)+元素+小于元素的数组(递归调用结束后有序)。

    快排的最好情况效率是O(n*logn),最坏情况是O(n*n)

    假设传入的是一个有序的数组

    我们选择的元素是数组第一个元素。

    那么就会出现最坏情况,递归次数为n次,每次对比n-1,n-2,到1次,那么就是n*n

    如果我们选择元素是数组中间元素

    那么就会出现最佳情况,递归次数为logn次,那么就是n*logn

    最佳情况其实也是平均情况,只要每次随机选择一个数组元素作为基准值。

    四、广度优先搜索

     广度优先搜索时一种用于图的查找算法,可邦族回答两类问题

    1、从节点A出发,有前往节点B的路径吗?

    2、从节点B出发,前往节点B的那条路径最短?

    广度优先搜索经常搭配队列使用,

    首先将出发点的所有邻居加入队列,遍历每个邻居,找到终点直接返回,否则把每个邻居的邻居加入队列,一直循环往复,直到找到终点或者队列为空。

    广度优先搜索的效率为O(V+E),V时顶点数,E为边数

    五、狄克斯特拉算法

    狄克斯特拉算法通常用来处理加权图,包含四个步骤

    1、找出最便宜的节点,即可在最短时间内到达的节点

    2、更新该节点的邻居开销

    3、重复这个过程,直到对图的每个节点啊都这样做了

    4、计算最终路径

    狄克斯特拉算法不能处理环,因为环会导致无限循环。陷入我也是我的邻居的邻居的无限循环中。

    环其实就是无向图。所以狄克斯特拉算法只能处理加权有向图。权重不能为负

    五、贪婪算法

    贪婪算法很简单,每步都采取最优的做法,最终得到一个局部最优解(可能是全局最优解)

    NP完全问题(很难找到快速解决方案)

    判断问题是否为NP完全问题一些方法

    1、元素少时算法运行速度非常快,但是元素数量增加,速度变得非常慢

    2、涉及“所有组合”的问题通常都是

    3、不能将问题分为小问题,必须考虑各种可能的情况。可能是NP完全问题

    4、问题涉及序列且难以解决,可能就是NP完全问题

    5、问题涉及集合且难以解决,可能就是NP完全问题

    6、问题可转换为集合覆盖问题或旅行商问题,肯定是NP完全问题

    六、动态规划

    动态规划通过将问题分为若干个离散的子问题,分别解决各个子问题,然后得到最终答案。

    七、K最近邻算法(机器学习常用)

    特征抽取,分类时抽取元素的特征,根据特征绘图。如果有多个特征,建议通过降维将维度缩小到二维或者三维。

    通过毕达哥拉斯公式,计算其他元素跟该元素的距离。将该元素分类为与该元素距离越近的分类

    分类就是编组

    回归就是预测结果

  • 相关阅读:
    静态数组和动态数组
    C#实现两个时间相减的方法
    360安全卫士为什么无法登录用户,显示网络失败,请检查网络,可是网络连接正常。
    WPS Word查询某些内容的出现次数
    安装安全狗后,MP4无法播放
    图片上传Security Error
    JS 构造图片Image对象
    c#截取图片
    VS2013快捷键
    WPS之替换样式
  • 原文地址:https://www.cnblogs.com/lgh344902118/p/11602915.html
Copyright © 2011-2022 走看看