数组循环左移的一种方法
来源:互联网 发布:java gzip 压缩 乱码 编辑:程序博客网 时间:2024/05/22 09:04
/** * 数组循环左移的一种方法 * 时间复杂度O(n),空间复杂度O(1) */#include <stdio.h>#include <stdlib.h>typedef int element;element a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a % b);}void leftShift(element * a, int n, int p) { int i, j, k, m, d, g, M; element tmp; g = gcd(p, n); M = n / g; for (i = 0; i < g; i++) { tmp = a[i]; j = i; for (m = 1; m < M; m++) { k = (j + p) % n; a[j] = a[k]; j = k; } a[j] = tmp; }}void printArr() { int i; for (i = 0; i < 10; i++) printf("%d ", a[i]); putchar('\n');}int main() { leftShift(a, 10, 4); printArr(); return 0;}
0 0
- 数组循环左移的一种方法
- 循环左移数组
- 循环左移数组
- 循环左移数组
- 数组循环左移
- 循环左移数组
- 数组循环左移
- 循环数组左移
- 数组循环左移
- 数组循环左移
- 数组循环左移
- 数组循环左移
- 数组循环左移
- PTA 数组循环左移
- 数组元素循环左移
- 数组元素的循环左移和右移...
- 整数数组的循环左移和右移
- 对于给定的数组,循环左移p个元素
- HDU 2029 Palindromes _easy version(水~)
- Android自学笔记之Button按钮里的属性及用法
- 编译安装arm平台qt库qt-everywhere-opensource-src-4.8.5
- 读取流和写入流的学习(8.28)
- Installation of NVIDIA GPU Driver and CUDA Toolkit
- 数组循环左移的一种方法
- Android自学笔记之ImageView的特殊属性及同为背景属性的src、background区别
- 解决不同操作系统的路径分隔符问题
- 一个人的时候
- PHP性能优化
- HDU 2030 汉字统计(水~)
- SystemService与Manager机制
- 红米手机1内部存储空间不足怎么办?
- Redis数据备份持久化