Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

แปลง Array ให้เป็น Zig-Zag Fashion ใน C++

ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมแปลง 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