zoukankan      html  css  js  c++  java
  • 计算机设计第二章

    递归与分治策略

    2-1Hanoi塔问题的非递归算法

    证明:Hanoi塔问题的递归算法与非递归算法实际上是一回事。

    分析:

    递归问题算法:

    void hanoi(int n,int A,int B,int C)

    {

    if (n>0)

    {

    hanoi(n-1,A,C,B);

    move(n,A,B);

    hanoi(n-1,C,B,A);

    }

    void hanoi(int n)_{

    int top[3]={0,0,0};

    int **tower;

    Make2DArray(tower,n+1,3);

    int b,bb,x,y,min=0;

    for (int i=0;i<=n;i++){}

    top[0]=n;

    while(top[1]<n)

    {

    }

    2-2 7个搜索算法

    2-3改写二分搜索算法

    设a[0:n-1]是已经排好序的数组,请改写二分搜索算法,使得当搜索元素x不在

    数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在

    数组中时。

    2-4大整数乘法的O()算法

    给定2个大整数u和v,它们分别有m和n位数字,且m<<n

    2-5 5次n/3位整数的乘数

    在用分治法求两个n位大整数u和v的乘积时,将u和v都分割为长度为n/3位的3段。

    设计一个求两个大整数乘积的分治算法,并分析算法的计算复杂性

    2-6 矩阵乘法

    对于任何非零偶数,总可以找到奇数m和正整数k,使得n=m2k。使用Strassen算法

    2-7多项式乘积

    2-8o(1)空间子数组换位算法

    设计一个算法使数组换位

    算法1:循环换位算法

    向前循环换位

    算法2:3次反转算法

    算法3:排列循环算法

    2-9o(1)空间合并算法

    算法一:向右循环换位合并

    算法2:内部缓存算法

    2-10对于所给的元素存储于数组中和存储于链表中两种情形,写出自然合并排序

    算法

    分析:对于存储于数组的情况,自然合并排序算法如下:

    temple<class T>

    void sort (T *a0,int m)

    {

    a=a0;

    n=m;

    b=new int [n];

    natural mergersort();

    }

    void naturalmergesort ()

    {

    }

  • 相关阅读:
    MySQL 8.0复制性能的提升(翻译)
    mongodb节点配置指南
    ProxySQL读写分离
    MySQL JOIN原理
    pt-summary
    Unity3D安卓打包参数配置与兼容性的关系分析
    unity3d 动画卡帧 动画合成 动画层次
    单机游戏计时器防作弊解决方案
    Unity3D占用内存太大的解决方法
    AndroidManifest.xml配置
  • 原文地址:https://www.cnblogs.com/heruonan/p/8450531.html
Copyright © 2011-2022 走看看