はじめに
この実験では、C++ プログラミング言語を使って、さまざまな手法を用いて配列を逆順にする方法を学びます。配列の逆順とは、配列の最後の要素が最初になり、最初の要素が最後になるように、配列の順序を変えることを意味します。この実験では、for ループ、組み込み関数、ポインタ、再帰、およびユーザー定義関数を含む、さまざまな方法を使って配列の逆順を実現する方法を学びます。
この実験では、C++ プログラミング言語を使って、さまざまな手法を用いて配列を逆順にする方法を学びます。配列の逆順とは、配列の最後の要素が最初になり、最初の要素が最後になるように、配列の順序を変えることを意味します。この実験では、for ループ、組み込み関数、ポインタ、再帰、およびユーザー定義関数を含む、さまざまな方法を使って配列の逆順を実現する方法を学びます。
次のコマンドを実行することで、~/project
ディレクトリに reverse_array.cpp
という名前の新しい C++ ファイルを作成します。
touch ~/project/reverse_array.cpp
次のコードは、for ループを使って配列を逆順にする方法を示しています。
#include <iostream>
using namespace std;
void reverseArray(int arr[], int size){
for(int i=0;i<size/2;i++){
int temp = arr[i];
arr[i] = arr[size-i-1];
arr[size-i-1] = temp;
}
}
int main(){
int arr[]={1,2,3,4,5};
int size = sizeof(arr)/sizeof(arr[0]);
cout<<"Original Array: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
reverseArray(arr,size);
cout<<"Reversed Array: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
コードをコンパイルして実行するには、次のコマンドを使用します。
g++ reverse_array.cpp -o reverse_array
./reverse_array
次のコードは、C++ の組み込み関数を使って配列を逆順にする方法を示しています。
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int arr[]={1,2,3,4,5};
int size = sizeof(arr)/sizeof(arr[0]);
cout<<"Original Array: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
reverse(arr,arr+size);
cout<<"Reversed Array: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
コードをコンパイルして実行するには、次のコマンドを使用します。
g++ reverse_array.cpp -o reverse_array
./reverse_array
次のコードは、配列を逆順にするためのユーザー定義関数を定義する方法を示しています。
#include <iostream>
using namespace std;
void reverseArray(int arr[], int size){
for(int i=0;i<size/2;i++){
int temp = arr[i];
arr[i] = arr[size-i-1];
arr[size-i-1] = temp;
}
}
int main(){
int arr[]={1,2,3,4,5};
int size = sizeof(arr)/sizeof(arr[0]);
cout<<"Original Array: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
reverseArray(arr,size);
cout<<"Reversed Array: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
コードをコンパイルして実行するには、次のコマンドを使用します。
g++ reverse_array.cpp -o reverse_array
./reverse_array
次のコードは、ポインタを使って配列を逆順にする方法を示しています。
#include <iostream>
using namespace std;
void reverseArray(int *arr, int size){
int *first = arr, *last = arr + size - 1;
while(first < last){
int temp = *first;
*first = *last;
*last = temp;
first++;
last--;
}
}
int main(){
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr)/sizeof(arr[0]);
cout<<"Original Array: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
reverseArray(arr, size);
cout<<"Reversed Array: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
コードをコンパイルして実行するには、次のコマンドを使用します。
g++ reverse_array.cpp -o reverse_array
./reverse_array
次のコードは、再帰を使って配列を逆順にする方法を示しています。
#include <iostream>
using namespace std;
void reverseArray(int arr[], int start, int end){
if(start >= end)
return;
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
reverseArray(arr,start+1,end-1);
}
int main(){
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr)/sizeof(arr[0]);
cout<<"Original Array: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
reverseArray(arr,0,size-1);
cout<<"Reversed Array: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
コードをコンパイルして実行するには、次のコマンドを使用します。
g++ reverse_array.cpp -o reverse_array
./reverse_array
おめでとうございます!あなたは、O(n) で配列を逆順にする実験を完了しました。あなたのスキルを向上させるために、LabEx でさらに多くの実験を練習することができます。