摘要: 【题目】 在n个元素的无序数组中选择第k(1<=k<=n)小元素。当k=1时,相当于找最小值。当k=n时,相当于找最大值。当k=n/2时,称中值。【要求】线性时间内完成,即O(n)。 【算法解析】 通过执行下列步骤,算法SELECT可以确定一个有n>1个不同元素的输入数组中第i小的元素。(如果n=1 阅读全文
posted @ 2017-04-06 01:32 王勋广 阅读(1013) 评论(0) 推荐(0) 编辑
摘要: 【题目】 2^k*2^k个方格的一个棋盘,有一个方格残缺;要求:用三格板覆盖棋盘,三格板不重叠,不覆盖残缺方格,覆盖所有其它方格。 【算法】 当 k>0 时,将2k*2k棋盘分割为 4 个 2k-1*2k-1子棋盘 ; 特殊方格必位于 4 个较小子棋盘之一中,其余 3 个子棋盘中无特殊方格; 为了将 阅读全文
posted @ 2017-04-04 17:37 王勋广 阅读(369) 评论(1) 推荐(0) 编辑
摘要: 【问题】普通方法计算矩阵相乘,时间复杂度为O(n^3),请设计优化算法。 【Strassen算法】 【时间复杂度】 阅读全文
posted @ 2017-04-04 00:33 王勋广 阅读(4083) 评论(0) 推荐(0) 编辑
摘要: 【问题】若X和Y都是n位二进制整数,设计一个有效的算法,可以进行两个n位大整数的乘法运算。 【算法讲解】 【时间复杂度】 阅读全文
posted @ 2017-04-03 23:38 王勋广 阅读(2310) 评论(0) 推荐(1) 编辑
摘要: 【题目】设计一个递归算法生成n个元素{r1,r2,…,rn}的全排列。 【算法讲解】 设R={r1,r2,…,rn}是要进行排列的n个元素,Ri=R-{ri}。集合X中元素的全排列记为perm(X)。(ri)perm(X)表示在全排列perm(X)的每一个排列前加上前缀得到的排列。R的全排列可归纳定 阅读全文
posted @ 2017-04-03 22:59 王勋广 阅读(18955) 评论(1) 推荐(0) 编辑