• 分治算法


    1、分治算法的设计思想

    例子:二分检索;二分归并,Hanio塔;

    -基本思想:

    1)将原问题划分或者归结于规模更小的子问题;

    2)递归或者迭代求解每个子问题(独立求解);

    3)将子问题的解综合到原问题的解答;

    注意事项:

    1)子问题的和原问题的性质是完全一样的;

    2)子问题之间独立求解,互不干扰

    3)递归停止的时候,子问题需要足够的小,我们有直接求解的算法!

    2、二分检索算法;

    算法 :Bianary Search ( T, l , r , x )

    输入::数组T、下标从 l 到 r、数x;

    输出:j //如果x在数组T中,j为下标,否则为0.

    1.l =1;r =n;

    2.while l<=r do

    3.m=[((l+r)/2)]最后向下取整;m是中间位置;

    4.if  T[m]=x  then  return  m;   //找到了

    5.else   if   T[m]<x    then    l=m+1;

    6.else    r=m-1;

    7.return  0; //没找到

    二分检索的思想:

    1.通过x和中位数比较,将原问题划分为规模减半的子问题,再对子问题进行二分检索,当子问题的规模为1时,直接T[m]和x比较,相等则返回下标m,否则返回0.

    二分检索的时间复杂度:

    3、二分归并排序:

     

     

     

    1、分治算法的一般描述:

      

     

     

     

     

    4、芯片测试:

         

     

     

     

     

     

      

     

     

     

    2、快速排序

     

     

     

     

     

     

     

    3、改进分治算法的途径:

    减少子问题:通过子问题之间的依赖关系来减少独立子问题的处理。

    增加预处理;

  • 相关阅读:
    阿里云 CDN+OSS 解决方案
    一次完整的HTTP请求过程
    apache多站点配置中ServerAlias什么意思
    legend3---apache配置https
    legend3---Fiddler如何抓手机app的包
    Fiddler:增加IP列
    http请求报文格式和响应报文格式
    http请求头中Referer的含义和作用
    Chrome保存的HAR文件怎么打开
    Android Studio 错误 Duplicate files copied in APK META-INF/LICENSE.txt
  • 原文地址:https://www.cnblogs.com/YM99/p/12600064.html
Copyright © 2020-2023  润新知