zoukankan      html  css  js  c++  java
  • 软考算法题大观

    以前的一篇博客解释过一些排序算法的原理:数据结构与算法之初体验(二)算法图解部分

    1、穷举法

    意义:一一列举,逐一尝试。

    应用:顺序查找、简单选择排序、冒泡排序、0/1背包、哈密顿回路、旅行家问题、最近点对和凸包问题。

    2、迭代法

    意义:找出个函数,不断将结果当做变量代入。

    3、递推法

    意义:建立起后项和前项的关系数列,后一组数由前一组数表示,运算。

    应用:斐波那契数列 F(n)=F(n-1)+F(n-2)  (n≥3)

    4、递归法

    意义:将较复杂的处理归结为简单处理,直到最简单的处理,在处理的递归调用中,系统用堆栈把每次调用的中间结果保存在栈区,直至求出最简值。然后返回调用函数,返回过程中,中间结果相继出栈恢复,它的执行效率相对较低。

    5、分治法

    意义:将一个难以解决的大问题,划分成一些规模较小的子问题,以便各个击破,分而治之。

    应用:大整数乘法、矩阵乘法、归并排序、快速排序、循环赛日程安排、最近点对问题、凸包问题。

    6、动态规划法

    意义:对于每一步决策列出各种可能的局部解,再依据各种判定条件,舍弃那些不能得到最优解的局部解,在每一步都经过筛选,以每一步都是最优解来保证全局是最优解。

    应用:矩阵连乘、多段图的最短路径、最长公共子序列、最优二叉排序树。

    7、回溯法

    意义:也叫试探法。它是一种系统搜索问题解的方法。从一条路往前走,能走得通就继续走,走不通就退回最近的交叉路口继续走下一步。

    应用:图的着色、哈密顿回路、八皇后问题、批处理作业调度。

    8、贪心法

    意义:从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的求得更好的解。当打到某算法中的某一步不能再继续前进时,算法停止。

    存在的问题:(1)不能保证最后求得的解最佳。

          (2)不能用来求最大或最小解问题。

          (3)只能秋满足某些约束条件的可行解的范围。

    应用:最小生成树、背包问题、旅行家问题、图的着色、活动安排问题、多机调度问题。

    9、分支界限法

    意义:是一种在问题的解空间树上搜索问题的解的方法。但与回溯不同,分支定界算法采用广度优先或最小耗费优先的方法搜索解空间树,每一个活节点只有一次机会成为扩展节点。

    应用:TSP旅行家旅行,遍历每个城市一次,并使得所走路程最短。

  • 相关阅读:
    functionnullvb6.0 求素数按奇偶显示
    问题判断那些年,我们遇到的傻逼问题
    下载输入python之小说下载器version2.0
    文件配置pro_git 第一章
    问题类像程序员一样思考
    修饰对象再谈const: 用const 修饰函数的返回值
    中国触发盲目推进城镇化极易触发金融危机
    树线段hdu 1754 I Hate It(线段树)
    监听事件Servlet监听器的那些事儿
    使用批处理build vs2005的工程
  • 原文地址:https://www.cnblogs.com/jyh317/p/3062046.html
Copyright © 2011-2022 走看看