zoukankan      html  css  js  c++  java
  • 第3章:蛮力法——《算法笔记

    1.选择排序与冒泡排序

    选择排序 :平方复杂性(源自键比较),但只需要n次键交换

    语义:依次选择最小的元素

    稳定:Y

    在位:Y

    最佳:n^2

    最差:n^2

    不同情况下,不影响键比较的次数,影响键交换的次数

    冒泡排序: 平方复杂性,键交换次数不定

     语义:比较相邻元素,将最大元素交换至末尾(维护末尾位置)

    稳定:Y

    在位:Y

    最佳:提前终止n

    最差: n^2

    冒泡排序的键交换次数多于选择排序

    但是最佳情况下第一次没冒泡直接结束

    选择排序没有得到数组的整体信息

    2.顺序查找,字符串匹配

    顺序查找:在序列有序情况下可提前退出(查找失败)

    字符串匹配:在正文中查找模式开头,然后依次检查模式的剩余部分。

    最坏情况mn(m=leng(正文),n=leng(模式))。

    在剩余正文长度不足时提前退出

    3.最近对问题,凸包问题

    最近对:遍历计算所有两点距离

    凸包:最小凸集合。选两个点,剩余点都在两点所成直线同侧,选择该两点

    4.穷举排列组合

    旅行商问题:列出所有可能回路(点排列)

    背包问题:列出所有可能组合,判断是否在问题范畴内

    分配问题

    5.深搜,广搜

     访问一个节点,遍历其子节点

    深搜:遍历单个相邻节点,回溯

    广搜:先遍历相邻节点,然后遍历外层

    深搜查找树,广搜查找树

    访问边与回溯边

    深搜:用跟踪,维护已访问节点,未访问节点

    检查连通性:可访问到

      无环性:重复被访问

    图的关节点:移除后不连通

    广搜:使用队列跟踪

    树向边:通向未访问,

    (广搜)交叉边:通向已访问,或兄弟节点  ?

    (深搜)回边:父节点

    维护边,实现遍历树?

    深搜广搜效率

    深搜:对于邻接矩阵,复杂度V^2 邻接链表V+E

    深搜树:可能生成顶点的多个排序  广搜:多个

    未完全规定顶点访问的优先级

    习题:

    3.1

    n堆,每堆n个假币,

    假币真币重量已知/未知

    选出假币

    称重盘/天平

    二分,三分

    排序算法提前终止条件

    预处理:首先遍历一遍(冒泡)

    正反硬币排序,交换的次数

    绝对位置/相对位置

    构造算法最差、最优情况

    字符串匹配,比较的顺序?

    同方向,交叉方向 

    最近对问题非蛮力求解

    一维分布实数,选择一个点,剩余点与之距离和最小

    最近对问题的蛮力求解不依赖于距离衡量方式?

    曼哈顿距离?

    距离公理:

    非负

    对称

    三角

    字符串距离:汉明距离

    相应位置,字符不同的个数

    是否满足距离公理

    最近字符串

    奇数派游戏

    二维空间

    投向最近邻居

    至少有一个人不会被击中

    点数=边数

    k维空间最近对

    平面点集合,线性时间选择凸包的两个极点

    min(x,y) max(x,y),x为第一关键字,y为第二关键字

    邻接矩阵,邻接表

    求解欧拉回路,哈密顿回路

    分配问题

    划分问题:两个和相同的集合

    预处理:求和?

    生成所有组合 

    完备k子图问题

    8皇后问题

    幻方问题

    行,列,对角线 和相同

    字母数字

    字母映射为数字,使得表达式成立

    深搜查找

    广搜查找树

    只是一次遍历的结果 

    稀疏图搜索效率

    稀疏图E=O(V)(带入复杂度公式即可)

    广搜/深搜?

    矩阵/表?

    给定顶点数与边数的图(连通图?)

    构造广搜树,深搜树

    树的数目是否一致?

    树向边回边数目是否一致?

    证明bfs树交叉边

    连接同层,或相邻层节点

    回路

    广搜查找,深搜查找效率?

    与回路长度相关? 

    区分已访问节点:数组

    与回路上的点:需要维护当前路径

    当前路径性质:叶到根,栈中的点

    从一个点出发,搜索不到自身(不在回路中),将点从集合中去除

    继续

    连通分量

    bfs,dfs

    二分图检测

    bfs,dfs

    连通分量的顶点?

    图回路

    输出

    迷宫求解

    3壶问题

    容积,初始水量

    深搜广搜求解

    三元组,相同元组,不再考虑

  • 相关阅读:
    PAT (Advanced Level) 1010. Radix (25)
    PAT (Advanced Level) 1009. Product of Polynomials (25)
    PAT (Advanced Level) 1008. Elevator (20)
    PAT (Advanced Level) 1007. Maximum Subsequence Sum (25)
    PAT (Advanced Level) 1006. Sign In and Sign Out (25)
    PAT (Advanced Level) 1005. Spell It Right (20)
    PAT (Advanced Level) 1004. Counting Leaves (30)
    PAT (Advanced Level) 1001. A+B Format (20)
    PAT (Advanced Level) 1002. A+B for Polynomials (25)
    PAT (Advanced Level) 1003. Emergency (25)
  • 原文地址:https://www.cnblogs.com/qmcj/p/9096395.html
Copyright © 2011-2022 走看看