编程珠玑之第二章习题5
2015-01-10 19:05
134 查看
问题描述:
n元一维向量旋转问题数将向量ab变为ba。如何将向量abc变为cba? (这对交换非相邻内存块问题进行了建模)
问题解析:
1、这里需要用到一个重要的性质:CBA=(ArBrCr)r
如果想到这个性质,那么基本上问题就解决一半了!解决方案可以类似于QusetionB的解决方案3,见:
编程珠玑之第二章questionB: n元一维向量旋转问题
解决方案:
如果n=12, A = abc, B = de, C = fghijkl 那么有举例如下:
输出结果:
心得疑惑:
1、 一些数学的基本性质是解决实际问题算法的根本!
n元一维向量旋转问题数将向量ab变为ba。如何将向量abc变为cba? (这对交换非相邻内存块问题进行了建模)
问题解析:
1、这里需要用到一个重要的性质:CBA=(ArBrCr)r
如果想到这个性质,那么基本上问题就解决一半了!解决方案可以类似于QusetionB的解决方案3,见:
编程珠玑之第二章questionB: n元一维向量旋转问题
解决方案:
如果n=12, A = abc, B = de, C = fghijkl 那么有举例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #include <cstdio> #include <cstdlib> // srand, rand #include <cassert> // assert /************************************************************************/ // 函数名称:myswap // 函数目的:反转arr索引在[index_a, index_b]之间的值 // 函数参数:arr:要交换的数组 arraysize:数组长度 index_a\index_b:数组索引 /************************************************************************/ void myswap(int* arr, int arraysize, int index_a, int index_b) { assert(index_a >= 0 && (index_b-index_a) >= 0 && index_b < arraysize); int i = index_a, j = index_b; for (; i <= j; i++, j--){ int temp = *(arr+i); *(arr+i) = *(arr + j); *(arr + j) = temp; } return; } int main() { int arr[12] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l'}; int arraysize = 12; // 数组长度 //假设 n=12, A = abc, B = de, C = fghijkl 则可以如下进行 myswap(arr, arraysize, 0, 2); myswap(arr, arraysize, 3, 4); myswap(arr, arraysize, 5, 11); myswap(arr, arraysize, 0, 11); for (int i = 0; i < 12; ++i) { printf("%c\t", arr[i]); } return 0; } |
心得疑惑:
1、 一些数学的基本性质是解决实际问题算法的根本!
相关文章推荐
- 编程珠玑之第二章习题3
- 编程珠玑之第二章习题4
- Linux操作系统(第二章课后习题)
- 第二章 Linux安装课后习题
- C++学习笔记-第二章习题(二)
- 算法导论课后习题解析 第二章
- 安徽大学大一高数第二章习题册答案
- 第二章 习题2.1-3 查找线性表
- 算法导论第二章习题答案(第三版) Introduction to Algorithm
- 充分理解表达式——《狂人C》习题解答2(第二章习题5)
- C++程序设计(第二版)谭浩强----程序题课后习题答案第二章
- 教材第二章课后习题
- python核心编程第二版第二章习题
- 第二章习题(布尔,Scanner类的运用)
- 第二章 从C到C++ 课后习题
- 统计学习导论:基于R应用——第二章习题
- 《C语言程序设计教程》(主编黄迪明、余勤)第二章课后习题答案
- 《C++ Primer》第五版课后习题解答_第二章(4)(30-38)
- 《数据结构与算法分析》习题-----第二章(3)(关于list的题目)
- 快学scala 第二章 读书笔记及习题答案代码