`
kmplayer
  • 浏览: 509965 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

2.17 数组循环移位

阅读更多
1,题意:把一个含有N个元素的数组循环右移K位.

2,注意:这里有个潜在的误区,一般人都会假设K < N.

3,实现代码:
void Reverse(int data[], int b, int e)
{
	while (b < e)
	{
		data[b] ^= data[e];
		data[e] ^= data[b];
		data[b] ^= data[e];
	}
}

void RightShift(int data, int N, int K)
{
	K %= N; //核心:避免这个误区
	Reverse(data, 0, N - K - 1);
	Reverse(data, N - K, N - 1);
	Reverse(data, 0, N - 1);
}
分享到:
评论

相关推荐

    FreeMat-4.2.pdf

    - **用途**:CIRCSHIFT函数用于循环移位数组的元素。 - **用法**: - `B = circshift(A, shift)`: 将数组`A`中的元素按照`shift`指定的方向循环移动。 - **示例**:使用CIRCSHIFT函数向右移动一维数组的元素。 ###...

    The Art of Assembly Language

    2.11 侈位和缩环移位 2.12 位域和压缩数据 2.13 浮点运算简介 2.14 BCD数据表示 2.15 字符 2.16 Unicode字符集 2.17 更多信息 第3章 存储器的访问与结构 3.1 本章概述 3.2 80x86的寻址方式 3.3 运行时存储器的结构 ...

    visualC++2010入门经典源代码

    2.9.5 移位运算符 71 2.10 lvalue和rvalue 73 2.11 了解存储时间和作用域 74 2.11.1 自动变量 74 2.11.2 决定变量声明的位置 76 2.11.3 全局变量 77 2.11.4 静态变量 80 2.12 名称空间 80 2.12.1 声明名称...

    [Visual.C++.2010入门经典(第5版)].Ivor.Horton.part1

    2.9.5 移位运算符 71 2.10 lvalue和rvalue 73 2.11 了解存储时间和作用域 74 2.11.1 自动变量 74 2.11.2 决定变量声明的位置 76 2.11.3 全局变量 77 2.11.4 静态变量 80 2.12 名称空间 80 2.12.1 声明名称空间 81 ...

    算法心得:高效算法的奥秘(原书第2版).[美]Henry S.Warren,Jr(带详细书签).pdf

    2.15 循环移位 37 2.16 双字长加减法 38 2.17 双字长移位 38 2.18 多字节加减法与求绝对值 39 2.19 doz、max、min函数 41 2.20 互换寄存器中的值 44 2.20.1 交换寄存器中相应的位段 45 2.20.2 交换同一...

    你必须知道的495个C语言问题

    2.17 C语言中有和Pascal的with等价的语句吗? 2.18 既然数组名可以用作数组的基地址,为什么对结构不能这样? 2.19 程序运行正确,但退出时却“coredump”(核心转储)了,怎么回事? 联合 2.20 结构和联合有...

    《你必须知道的495个C语言问题》

    2.17 C语言中有和Pascal的with等价的语句吗? 29 2.18 既然数组名可以用作数组的基地址,为什么对结构不能这样? 29 2.19 程序运行正确,但退出时却“core dump ”(核心转储)了,怎么回事? 29 联合 30 2.20...

    LinuxC编程一站式学习

    **2.17 计算机体系结构基础** - **内存与地址**: 讲解了内存的基本概念和地址空间的划分。 - **CPU**: 分析了CPU的工作原理及其架构特点。 - **设备**: 介绍了计算机系统的输入输出设备。 - **MMU**: 解释了内存管理...

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

    2.17 本章主要内容 98 第3章 判断和循环 101 3.1 比较数据值 101 3.1.1 if语句 102 3.1.2 嵌套的if语句 104 3.1.3 嵌套的if-else语句 107 3.1.4 逻辑运算符和表达式 109 3.1.5 条件运算符 112 3.1.6 switch...

    你必须知道的495个C语言问题(PDF)

    2.17 有什么容易的显示枚举值符号的方法? . . . . . . . . . . . . . . . 11 3 表达式13 3.1 为什么这样的代码: a[i] = i++; 不能工作? . . . . . . . . . . . . 13 3.2 使用我的编译器,下面的代码int i=7; printf...

Global site tag (gtag.js) - Google Analytics