Computer >> Máy Tính >  >> Lập trình >> C ++

Chuyển mảng thành kiểu Zig-Zag trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình chuyển đổi một mảng thành kiểu zig-zag.

Đối với điều này, chúng tôi sẽ được cung cấp một mảng chứa các phần tử riêng biệt. Nhiệm vụ của chúng ta là sắp xếp lại các phần tử của mảng đã cho theo kiểu zig zag với các phần tử lớn hơn và nhỏ hơn so với phần tử trước đó.

Ví dụ

#include <iostream>
using namespace std;
//converting into zig-zag fashion
void convert_zigzag(int arr[], int n) {
   //flag denotes the greater or smaller relation
   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;
}

Đầu ra

3 7 4 8 2 6 1