最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實現數組的循環(huán)移位的方法示例

 更新時間:2019年08月15日 09:26:52   作者:xz1996  
這篇文章主要介紹了C語言實現數組的循環(huán)移位的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

算法

Reverse Array (數組翻轉)

code

void reverse(int array[], int left, int right)
{
 int l, r;
 for (l = left, r = right; l < r; l++, r--)
 {
  array[l] = array[l] ^ array[r];
  array[r] = array[l] ^ array[r]; // l ^ r ^ r = l ^ 0 = l.
  array[l] = array[l] ^ array[r]; // l ^ r ^ l = r ^ 0 = r;
 }
}

上述代碼通過異或運算來高效實現變量值的交換,請記?。?/p>

  • 任何數與0異或的結果都是它本身。
  • 任何數與1異或的結果都是它的相反數。

循環(huán)左移

假設我們循環(huán)左移n位,則實現的步驟是:

  1. 翻轉數組的前n位元素;
  2. 翻轉數組剩下的元素;
  3. 再翻轉整個數組,然后就實現了循環(huán)左移n位的功能。

以上步驟的順序也可以改為step2 -> step1 -> step3.

code:

reverse(array, 0, left_shift_num - 1);
reverse(array, left_shift_num, array_size - 1);
reverse(array, 0, array_size - 1);

循環(huán)右移

假設我們循環(huán)右移n位,則實現的步驟是:

  1. 翻轉數組的后n位元素;
  2. 翻轉數組剩下的元素;
  3. 再翻轉整個數組,然后就實現了循環(huán)右移n位的功能。

以上步驟的順序也可以改為step2 -> step1 -> step3.

code:

reverse(array, 0, array_size - right_shift_num - 1);
reverse(array, array_size - right_shift_num, array_size - 1);
reverse(array, 0, array_size -1);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C++中::SHCreateDirectoryEx函數使用方法

    C++中::SHCreateDirectoryEx函數使用方法

    ::SHCreateDirectoryEx用于創(chuàng)建多級目錄,類似于mkdir -p命令,本文主要介紹了C++中::SHCreateDirectoryEx函數使用方法,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • strcat函數實現簡單示例

    strcat函數實現簡單示例

    這篇文章主要介紹了strcat函數實現簡單示例,需要的朋友可以參考下
    2014-03-03
  • C++中的struct和class的區(qū)別詳解

    C++中的struct和class的區(qū)別詳解

    這篇文章主要介紹了C++中的struct和class的區(qū)別詳解,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-08-08
  • 動態(tài)數組C++實現方法(分享)

    動態(tài)數組C++實現方法(分享)

    下面小編就為大家?guī)硪黄獎討B(tài)數組C++實現方法(分享)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • C語言中字符串與各數值類型之間的轉換方法

    C語言中字符串與各數值類型之間的轉換方法

    這篇文章主要介紹了C語言中字符串與各數值類型之間的轉換方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 詳解C++11 原始字符串字面量(Json字符串表達更方便)

    詳解C++11 原始字符串字面量(Json字符串表達更方便)

    原始字符串字面量(Raw String Literal)是C++11引入的一種字符串表示方式,用于簡化字符串的定義,特別是當字符串中包含大量特殊字符(如換行符、雙引號等)時,這篇文章給大家介紹C++11原始字符串字面量(Json字符串表達更方便)的相關知識,感興趣的朋友一起看看吧
    2025-03-03
  • c++指針參數傳遞和引用參數傳遞的區(qū)別解析

    c++指針參數傳遞和引用參數傳遞的區(qū)別解析

    這篇文章主要介紹了c++指針參數傳遞和引用參數傳遞的區(qū)別解析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Qt實現將qsqlite數據庫中的數據導出為Excel表格

    Qt實現將qsqlite數據庫中的數據導出為Excel表格

    這篇文章主要為大家詳細介紹了如何通過Qt實現將qsqlite數據庫中的數據導出為Excel表格,文中的示例代碼簡潔易懂,有需要的小伙伴可以了解一下
    2024-12-12
  • Opencv提取連通區(qū)域輪廓的方法

    Opencv提取連通區(qū)域輪廓的方法

    這篇文章主要為大家詳細介紹了Opencv提取連通區(qū)域輪廓的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • c語言實現冒泡排序、希爾排序等多種算法示例

    c語言實現冒泡排序、希爾排序等多種算法示例

    c語言實現插入排序、冒泡排序、選擇排序、快速排序、堆排序、歸并排序、希爾排序示例,需要的朋友可以參考下
    2014-04-04

最新評論

繁峙县| 衡南县| 张家界市| 石台县| 玉溪市| 永善县| 洱源县| 夹江县| 西青区| 泾阳县| 海口市| 重庆市| 黄浦区| 浪卡子县| 中山市| 九江市| 泸州市| 翁牛特旗| 锦屏县| 乡宁县| 濮阳市| 堆龙德庆县| 宜宾县| 大连市| 莫力| 拉萨市| 长寿区| 万载县| 牙克石市| 额尔古纳市| 理塘县| 桐乡市| 乳源| 吉林省| 荥经县| 肃宁县| 大冶市| 伊金霍洛旗| 景洪市| 铅山县| 汕尾市|