数组循环移位操作实例

 更新时间:2013年09月17日 16:27:22   作者:  
这篇文章介绍了数组循环移位操作实例,有需要的朋友可以参考一下
题:
如标题,要求时间复杂度为O(N)。

解法:
右移k位,前k位逆序,后N-k位逆序,再整个逆序即可。
复制代码 代码如下:

#include <stdio.h>  
#include <stdlib.h>  

void reverse(int* array, int b, int e)  
{  
    int temp = 0;  
    for(; b < e; b++,e--)  
    {  
        temp = array[e];  
        array[e] = array[b];  
        array[b] = temp;  
    }  
    return;  
}  

void rightShift(int* array, int n, int k)  
{  
    k = k % n;  
    reverse(array, 0, n - k - 1);  
    reverse(array, n - k, n - 1);  
    reverse(array, 0, n - 1);  
    return;  
}  

int main()  
{  
    int array[] = {6,7,8,9,1,2,3,4};  
    int i = 0;  
    rightShift(array, 8, 4);  
    for (; i < 8; i++)  
    {  
        printf("%d\n", array[i]);  
    }  
    return 0;  
}

相关文章

  • Qt学习之容器类的使用教程详解

    Qt学习之容器类的使用教程详解

    Qt提供了多个基于模板的容器类,这些类可以用于存储指定类型的数据项。本文主要介绍了Qt常用容器类的使用,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-12-12
  • 常用的C语言排序算法(两种)

    常用的C语言排序算法(两种)

    本文给大家分享两种常用的C语言排序算法,代码非常简单,感兴趣的朋友可以参考下
    2016-09-09
  • 简单谈谈关于C++中大随机数的问题

    简单谈谈关于C++中大随机数的问题

    这篇文章主要介绍了关于C++中大随机数的问题,文中给出了详细的示例代码,相信对大家的学习或者工作具有一定的参考借鉴价值,有需要的朋友可以一起来学习学习。
    2017-01-01
  • C++ txt 文件读取,并写入结构体中的操作

    C++ txt 文件读取,并写入结构体中的操作

    这篇文章主要介绍了C++ txt 文件读取,并写入结构体中的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 利用ace的ACE_Task等类实现线程池的方法详解

    利用ace的ACE_Task等类实现线程池的方法详解

    本篇文章是对利用ace的ACE_Task等类实现线程池的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • opencv实现读取视频保存视频

    opencv实现读取视频保存视频

    这篇文章主要为大家详细介绍了opencv实现读取视频保存视频,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • OpenCV实现帧间差分法详解

    OpenCV实现帧间差分法详解

    这篇文章主要为大家详细介绍了OpenCV实现帧间差分法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • C语言简明讲解变量的属性

    C语言简明讲解变量的属性

    我们知道以在 C 语言中的变量有自己的属性,只要在定义变量的时候加上“属性”关键字即可。“属性”关键字指明变量的特有意义,但是 register 关键字只是请求寄存器变量,所以不一定会成功
    2022-04-04
  • OpenCV图像文件批量读取编程实例

    OpenCV图像文件批量读取编程实例

    这篇文章主要为大家详细介绍了OpenCV图像文件批量读取编程实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • C++string底层框架模拟实现代码

    C++string底层框架模拟实现代码

    本节文章主要说明浅拷贝和深拷贝的优缺点,以及仿写string类的逻辑并分析实现过程,对C++string底层框架模拟实现代码感兴趣的朋友一起看看吧
    2021-11-11

最新评论