ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมแปลง array ให้เป็น zig-zag fashion
สำหรับนี้ เราจะได้รับ array ที่มีสมาชิกไม่ซ้ำกัน งานของเราคือจัดเรียงสมาชิกของ array ให้เป็น zig zag fashion โดยมีสมาชิกมากกว่าและน้อยกว่าสลับกันเทียบกับสมาชิกก่อนหน้า
โปรแกรมตัวอย่าง
#include <iostream>
using namespace std;
// แปลงเป็น zig-zag fashion
void convert_zigzag(int arr[], int n) {
// flag แทนความสัมพันธ์ greater หรือ smaller
bool flag = true;
for (int i = 0; i <= n - 2; i++) {
if (flag) {
if (arr[i] > arr[i + 1])
swap(arr[i], arr[i + 1]);
} else {
if (arr[i] < arr[i + 1])
swap(arr[i], arr[i + 1]);
}
flag = !flag;
}
}
int main() {
int arr[] = {4, 3, 7, 8, 6, 2, 1};
int n = sizeof(arr) / sizeof(arr[0]);
convert_zigzag(arr, n);
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
return 0;
}
ผลลัพธ์
3 7 4 8 2 6 1