a1,a2,...,an,b1,b2,...,bn,
来源:互联网 发布:照片人物剪裁软件 编辑:程序博客网 时间:2024/04/30 03:37
#include <iostream> using namespace std; /* 输入a1,a2,...,an,b1,b2,...,bn, 在O(n)的时间,O(1)的空间将这个序列顺序改为a1,b1,a2,b2,a3,b3,...,an,bn, 且不需要移动,通过交换完成,只需一个交换空间。 一 a1a2a3a4 b1b2b3b4 a1a2b1b2 a3a4b3b4 二 a1a2a3a4a5 b1b2b3b4b5 a1a2b1b2b3 a3a4a5b4b5 a1a2b1b2a3 b3a4a5b4b5 */ void solve(int arr[],int s ,int e) { if( s >= e) return; int center = (s+e)/2; //left part: s,...,center; //right part center+1,...,e int ls = s; int le = center; int rs = center+1; int re = e; for(int i=(le+ls)/2+1,j = rs ; i <= le; i++,j++) mySwap(arr[i],arr[j]); //奇数个 if(le!=ls && (le-ls)%2==0){ le++; rs--; } solve(arr,ls,le); solve(arr,rs,re); } int main() { int arr[]={1,3,5,7,9,2,4,6,8,10}; solve(arr,0 ,9); for(int i=0;i<10;i++) cout<<arr[i]<<" "; cout<<endl; return 0; }
- a1,a2,...,an,b1,b2,...,bn,
- 行车(a1*b1+a1*b2+..a1*bn+a2*b1+...an*bn=(a1+..an)(b1+..bn) )
- 拆分单链表(a1,b1,a2,b2....an,bn)=(a1,...an)+(bn,...b1)
- 输入a1,a2,...,an,b1,b2,...,bn, 将这个序列顺序改为a1,b1,a2,b2,a3,b3,...,an,bn
- 数组元素交叉排列的算法题(a1 a2 a3 .. an b1 b2 b3 .. bn -->a 1 b1, a2 b2, a3 b3, .. an bn )
- 数组元素交叉排列的算法题(a1 a2 a3 .. an b1 b2 b3 .. bn -->a 1 b1, a2 b2, a3 b3, .. an bn )
- 数组元素交叉排列的算法题(a1 a2 a3 .. an b1 b2 b3 .. bn -->a 1 b1, a2 b2, a3 b3, .. an bn )
- 据说是G开头公司的面试题【输入a1,a2,...,an,b1,b2,...,bn】
- 数组元素交叉排列的算法题(a1 a2 a3 .. an b1 b2 b3 .. bn -->a 1 b1, a2 b2, a3 b3, .. an bn ) 概论思想(perfect shuffle 算法)
- 算法:完美洗牌算法:一个长度为2n的(整型)数组元素为 a1 a2 ... an b1 b2 ... bn
- 问题描述:一个长度为2n的(整型)数组元素为 a1 a2 ... an b1 b2 ... bn 要求: 用O(1)的空间代价, 在O(n)时间内把数组变成 a1 b1 a2 b2 a3 b3 ... an bn
- 有一个带头结点的单链表L={a1,b1,a2,b2,...,an,bn},设计一个算法将其拆分成两个带头结点的单链表A和B,正序链表A={a1,a2,a3...,an},逆序链表B={bn,bn-1,
- (A1^B1+A2^B2+ ... +AH^BH)mod M.
- c#计算两个时间段(DateTime A1,DateTime A2)-(DateTime B1,DateTime B2)之间重复的时间
- 网易游戏笔试题─两个圆相交,交点是A1,A2。现在过A1点做一直线与两个圆分别相交另外一点B1,B2。 B1B2可以绕着A1点旋转。问在什么情况下,B1B2最长
- 网易游戏笔试题─两个圆相交,交点是A1,A2。现在过A1点做一直线与两个圆分别相交另外一点B1,B2。 B1B2可以绕着A1点旋转。问在什么情况下,B1B2最长
- 两个圆相交,交点是A1,A2。现在过A1点做一直线与两个圆分别相交另外一点B1,B2。B1B2可以绕着A1点旋转。问在什么情况下,B1B2最长? 设两个圆的圆心分别为O1,O2。作O1C垂直于B1B
- 将双向循环链表L=(a1,a2,...,an)改造成L=(a1,a3,...,an,...,a4,a2)
- 如何处理magento模版中的广告模块
- HTML5学习 ,缓存
- qt中的qmake命令设置
- 类型“Microsoft.Office.Interop.Word.ApplicationClass”未定义构造函 无法嵌入互操作类型“Microsoft.Office.Interop.Word.ApplicationClass”
- MFC的初次使用时的体会
- a1,a2,...,an,b1,b2,...,bn,
- DatePicker选择器
- 网络拓扑发现算法的分析
- 三分之一理想
- 冒泡排序(C语言描述)
- Java组件外观代码的相关学习
- KMP字符串模式匹配算法
- python支持中文
- OpenSSL-安装与配置指南作者