反手法
来源:互联网 发布:河南海融软件 编辑:程序博客网 时间:2024/06/11 19:42
循环移位是一个比较基础的操作,在STL中已经给出函数rotate,包含于头文件algorithm,在SGI STL的实现版本中,对于随机访问迭代器,采用了反手法来实现循环移位。
反手法具有线性时间的复杂度,因此算法性能较好,其对于数组的循环移位类似如下:
/*********************************************** 循环移位:反手法原理较为简单:AB->BA:(1)A反转 (2)B反转(3)整体反转即BA=(A'B')'.***********************************************/#ifndef Rotate_Shift_H#define Rotate_Shift_H/*****************辅助程序*********************/template <typename Type>void Reverse(Type array[],int begin,int end){for(;begin<end;++begin,--end){Type temp=array[begin];array[begin]=array[end];array[end]=temp;}}/**********************************************/template <typename Type>void Rotate(Type array[],int size,int n,bool Direction=true){//默认实现循环右移n位if(Direction){Reverse(array,0,size-1-n);Reverse(array,size-n,size-1);Reverse(array,0,size-1);}//实现循环左移n位else{Reverse(array,0,n-1);Reverse(array,n,size-1);Reverse(array,0,size-1);}}#endif
传递参数为数组首地址,数组长度,循环移位的个数以及左右移位的方向设定。
0 0
- 反手法
- Soft Defender(1.x)[-]中的反调试手法
- unspecified_bool_type 手法
- unspecified_bool_type 手法
- unspecified_bool_type 手法
- unspecified_bool_type 手法
- unspecified_bool_type 手法
- unspecified_bool_type 手法
- unspecified_bool_type 手法
- 写作手法
- RAII手法
- 注入手法
- 平面设计创意手法漫谈
- SCRATCH既十种手法~~~
- 英语文章 写作手法
- QC旧七大手法
- 常用网络营销手法
- 网站作弊手法
- 数据库如何提高处理查询速度
- 这是我第一篇博客
- 倒计时函数
- javaeye博客的收藏管理页面
- openssL在linux eclipse下使用的完整过程-附截图和测试程序
- 反手法
- 微信公众平台开发(六) 翻译功能开发
- MAVEN自定义项目骨架
- dome4j 解析xml 文档 (对xml文档的 增 删 改 ) 方法
- 查找/etc目录下所有大于5KB的目录
- MySQL数据库运行状态数据采集的脚本
- Oracle Hints详解
- 其实网站的百度快照更新与权重并没有多大关系
- 使用librtmp进行H264与AAC直播