Rumah >pembangunan bahagian belakang >C++ >Algoritma pembalikan untuk putaran tatasusunan yang ditulis dalam C++
Dalam masalah yang diberikan, kita mempunyai tatasusunan dan kita perlu memutarkan tatasusunan dengan elemen d menggunakan algoritma penyongsangan, contohnya −
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.# 🎜🎜 #Kami melakukan beberapa pengiraan pada putaran tatasusunan dengan teknik penyongsangan dan membuat kesimpulan:
#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
Kesimpulan
Atas ialah kandungan terperinci Algoritma pembalikan untuk putaran tatasusunan yang ditulis dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!