完美三手洗牌
来源:互联网 发布:淘宝都是天猫 编辑:程序博客网 时间:2024/04/29 04:02
完美洗牌问题是两手洗牌,假设有三只手同时洗牌呢?那么问题将变成:输入是a1,a2,……aN, b1,b2,……bN, c1,c2,……cN,要求输出是c1,b1,a1,c2,b2,a2,……cN,bN,aN,这个时候,怎么处理?
#include <iostream>using namespace std;//翻转字符串时间复杂度O(to - from)void reverse(int *a, int from, int to) {int t;for (; from < to; ++from, --to) {t = a[from];a[from] = a[to];a[to] = t;}}//循环右移num位 时间复杂度O(n)void RightRotate(int *a, int num, int n) {reverse(a, 1, n - num);reverse(a, n - num + 1, n);reverse(a, 1, n);}//三手洗牌void perfectShuffle(int* a, int n) {while (n > 1) {RightRotate(a + 1, 1, n);RightRotate(a + 2, 1, n * 2 - 1);a += 3;n--;}}
1 0
- 完美三手洗牌
- 完美洗牌
- 完美洗牌
- 完美洗牌问题
- 完美洗牌算法
- 完美洗牌算法学习
- 完美洗牌算法
- 完美洗牌算法学习
- 完美洗牌算法
- 完美洗牌问题
- 完美洗牌算法
- 105完美洗牌算法
- 完美洗牌算法
- 完美洗牌问题
- 完美洗牌问题
- 完美洗牌算法
- 完美洗牌算法
- 完美洗牌算法
- 关于volatile的用法
- 正则表达式语法
- web前端,综合学习网址集合
- eclipse 创建hibernate工程
- WCF 配置文件分解
- 完美三手洗牌
- 【JS】从零开始编一个JS游戏(1)
- Introduction to CFNetwork Programming Guide(译)
- 经典55句
- A+B problem-洛谷 1601
- CSDN博客历程
- REACT Stateless Functional Component
- Add Binary
- application/json 四种常见的 POST 提交数据方式