สมมติว่ามีอาเรย์ n สมาชิก ต้องกลับลำดับสมาชิกในอาเรย์จริง (in-place) แล้วแสดง ไม่ใช่พิมพ์ย้อนหลัง
เช่น n = 9 arr = [2,5,6,4,7,8,3,6,4] ผลลัพธ์: [4,6,3,8,7,4,6,5,2]
ขั้นตอนการแก้ปัญหา
- วนลูป i = 0 ถึง n/2 - 1:
- temp := arr[i]
- arr[i] := arr[n - i - 1]
- arr[n - i - 1] := temp
- วนลูปพิมพ์ arr[i] ทุกตัว
ตัวอย่างโค้ด
#include <iostream> using namespace std; int main(){ int n = 9; int arr[n] = {2,5,6,4,7,8,3,6,4}; int temp; for(int i = 0; i<n/2; i++){ temp = arr[i]; arr[i] = arr[n-i-1]; arr[n-i-1] = temp; } for(int i = 0; i < n; i++) cout << arr[i] << " "; }
อินพุต
9, {2,5,6,4,7,8,3,6,4}
เอาต์พุต
4 6 3 8 7 4 6 5 2