使用C++編寫的數組旋轉的逆轉演算法
在給定的問題中,我們有一個數組,我們需要使用反轉演算法將數組旋轉d個元素,例如−
Input : arr[] = [1, 2, 3, 4, 5, 6, 7], d = 2 Output : arr[] = [3, 4, 5, 6, 7, 1, 2] Explanation : As you can see we have to rotate this array by d = 2 but our main task is to achieve this by using a reversal technique.
我們對數組的旋轉進行了一些反轉技術的計算,並得出結論:
- 首先,我們反轉數組的前d個元素。
- 其次,我們反轉剩下的元素。
- 第三,我們反轉整個陣列。
透過應用這三個步驟,我們可以得到旋轉後的陣列。
解決方案的方法
在這個問題中,首先,我們要寫一個反轉元素的函數;現在我們按照上述步驟進行操作。
範例
#include <bits/stdc++.h> using namespace std; void reverseArray(int arr[], int start, int end) { // our reversal algorithm while (start < end) { // if start becomes equal to end we break the loop int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } return ; } void Rotate(int arr[], int d, int n) { // rotation function if (d == 0) // no rotation required return; d = d % n; // when d becomes equal to n so our array comes to its original form reverseArray(arr, 0, d - 1); // reversing first d elements reverseArray(arr, d, n - 1); // reversing the remaining elements reverseArray(arr, 0, n - 1); // reversing the whole array return ; } int main() { int arr[] = { 1, 2, 3, 4, 5, 6, 7 }; // given array int n = sizeof(arr) / sizeof(arr[0]); // size of our array int d = 2; Rotate(arr, d, n); for(int i = 0; i < n; i++) // printing the array cout << arr[i] << " "; cout << "\n"; return 0; }
輸出
3 4 5 6 7 1 2
上述程式碼的解釋
在上述方法中,我們首先建立了一個反轉技術,它將接受三個參數,即陣列、起始索引和結束索引,並將我們的陣列從起始位置到結束位置反轉。由於我們之前已經開發了演算法,我們將使用這個函數來應用該演算法。首先,我們反轉前d個元素。然後,我們反轉剩餘的元素,最後,我們反轉整個陣列。結果是,我們的陣列被旋轉了d個位置。在旋轉函數中,我們將d設定為d % n。這是因為如果我們旋轉數組的前n個元素,得到的答案會與之前相同,所以我們對d取模n。
結論
在本文中,我們解決了一個應用反轉演算法進行陣列旋轉的問題。我們也學習了解決這個問題的C 程序和完整的(正常)方法。我們可以用其他語言如C、Java、Python和其他語言來寫相同的程式。希望本文對您有幫助。
以上是使用C++編寫的數組旋轉的逆轉演算法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

我們在使用Word辦公室軟體進行文件處理的時候,經常需要在文件裡插入一些圖片之類的素材,但是,為了排版美觀的需要,我們還需要將圖片進行一些特殊的排版,其中旋轉處理是最基本的排版處理,但是,對於一些剛接觸Word辦公室軟體的職場新人來講,可能還不太會在Word文檔裡處理圖片。下邊,我們就分享一下Word圖片怎麼旋轉的方法,希望對你有幫助和啟發。 1.首先,我們打開一個Word文檔,隨後,我們選單列點擊插入-圖片按鈕,電腦中隨意找一張圖片插入,以便於我們操作演示使用。 2、如果我們要將圖片旋轉,接著需

如何使用Vue實現3D立體旋轉特效作為一種流行的前端框架,Vue.js在開發動態網頁和應用程式中扮演著重要的角色。它提供了一種直覺、高效的方式來建立互動式介面,並且易於整合和擴展。本文將介紹如何使用Vue.js實作一個令人驚嘆的3D立體旋轉特效,並提供具體的程式碼範例。在開始之前,請確保您已經安裝了Vue.js,並且對Vue.js的基本用法有一定的了解。如果您還

我們都知道不是任何數字的平方的數字,如2、3、5、7、8等。非平方數有N個,不可能知道每個數字。因此,在本文中,我們將解釋有關無平方數或非平方數的所有內容,以及在C++中尋找第N個非平方數的方法。第N個非平方數如果一個數是整數的平方,則該數稱為完全平方數。完全平方數的一些例子是-1issquareof14issquareof29issquareof316issquareof425issquareof5如果一個數不是任何整數的平方,則該數稱為非平方數。例如,前15個非平方數是-2,3,5,6,

CSS實現載入動畫效果的技巧和方法隨著網路的發展,載入速度成為了使用者體驗的重要指標之一。為了提升頁面載入時的使用者體驗,我們通常會使用載入動畫效果來增加頁面的互動性和吸引力。而CSS作為前端開發中的重要技術之一,提供了許多實作載入動畫效果的技巧和方法。本文將介紹幾種常見的CSS載入動畫效果的實作技巧和方法,並提供相應的程式碼範例。旋轉載入動畫旋轉載入動畫是一種

如何使用Python對圖片進行縮放和旋轉導語:如今,我們經常使用圖片來豐富我們的網頁設計、行動應用程式、社群媒體等各種場景。在圖片處理中,縮放和旋轉是兩個常見的需求。 Python作為一種腳本語言和強大的圖像處理工具,提供了許多程式庫和方法來處理這些任務。本文將介紹如何使用Python對圖片進行縮放和旋轉,並提供程式碼範例。一、縮放圖片縮放圖片是調整影像大小的基本操作之

如何利用Layui實現圖片裁剪和旋轉功能一、背景介紹在Web開發中,經常會遇到需要對圖片進行裁剪和旋轉的場景,例如頭像上傳、圖片編輯等。 Layui是一款輕量級的前端框架,提供了豐富的UI元件和友善的API,特別適合快速建立網頁應用。本文將介紹如何利用Layui實作圖片裁切和旋轉功能,並提供具體的程式碼範例。二、環境準備在開始前,需要確認以下環境已經準備就緒:

玩家在背包英雄中進行遊戲時可以旋轉視野,有很多玩家不知道背包英雄怎麼旋轉,玩家點擊主介面右下角的設定圖示找到鏡頭控制,打開自動視角調整選項即可進行調整。背包英雄怎麼旋轉1、進入遊戲後,點選主介面右下角的「設定」圖示。 2、在設定介面中找到“鏡頭控制”,然後可以看到有一個“自動視角調整選項”。 3.將這個開關打開即可實現自動旋轉視野了,當你在戰鬥或操作複雜時可以開啟此功能方便觀察戰局。 4.如果想要在移動的時候也進行旋轉操作的話也是可以的,只需要在設定了裡面找到陀螺儀並勾選「移動時切換為手動瞄準」就可以

css能讓文字旋轉,其實現文字旋轉的方法:1、新建一個html檔案;2、使用span標籤建立一行文字;3、為span標籤新增一個class屬性,用於樣式的定義;4、在css標籤內,透過class定義span標籤的樣式,設定它為區塊級元素;5、使用transform屬性,利用rotate設定span旋轉指定角度即可。
