×

Zigzag Array in Java

In this tutorial, we discuss, what is zigzag array and its example. Even we will create the java program. In this program, we convert the simple array into a zigzag array.

What is a Zigzag Array in Java?

Java has supported another type of array called a zigzag array. Zigzag array means a two-dimensional(2-D) array in which rows are already fixed and then different numbers of columns are fixed for each row.

int[][]a= new int[5][];
a[0]= new int[5];
a[1]= new int[2];
a[2]= new int[3];
a[3]= new int[1];
a[4]= new int[2]; 
Zigzag Array in Java

If there are no three consecutive elements in either increasing or decreasingorder in an array, it is said to be a zigzag array. That is to say, if the array contains three elements (say, ai, ai+1, ai+2), The array is not in a zigzag pattern. Because ai ai+1 ai+2 or ai > ai+1 > ai+2.

As a result, the condition can be symbolically represented as follows:

a <b> c < b > c < d > f 

The elements of the array are a, b, c, d, e, and f.

In a nutshell, array elements must alternately follow the less than (<) and greater than (>) orders. Every element has a larger or lesser value than its nearby.

There are two ways that can be used:

Method 1: A Simple Solution

  1. To begin, shorten the array that has been provided.
  2. The first element should be fixed.
  3. Swap the remaining parts in pairs after that. It denotes that you should swap a[1] and a[2], a[3] and a[4], and so forth.

Because no more space is required, the complexity of the aforementioned solution will be O(n log n) and the complexity of space will be O(1).

Method 2: A Cost-Effective Solution

The second method is more efficient because it completes the bubble short in one pass. In O(n) time, it changes the array to a zigzag form.

We have to keep a flag that represents the order (fewer than (<) or larger than (>) in order to conduct the bubble short. If the two elements are not in that order, switch them; otherwise, don't.

Algorithm:

1. Set the value of the flag to true.

2. From 0 to n-2, traverse the array (where n is the array's length).

  1. If the flag is true
    • Make surethe present element is larger than the one that comes after it.
    • Change the settings.
  2. Otherwise, see if the present element is larger than the one that comes after it.
    • Check to see if the current element is smaller than the next.
    • Change the settings.
  3. Toggle the flag's value.

Let's have a look at an example.

Consider the array A, which consists of three elements: [5, 3, 1]. 5 > 3 > 1 in this case. It denotes the absence of a zigzag array. Assume we're dealing with 3 and 1, which equals 3 > 1. If we switch 3 and 1, the connection becomes 5 > 1 and 1 3, and we end up with the zigzag array [5, 1, 3].

A Zigzag Array Example:

Zigzag arrays are A = [4, 2, 6, 3, 10, 1] and B = [8, 4, 6, 3, 5, 1, 10, 9]. Because there are no three consecutive array elements in either increasing or decreasing order.

The element a1 a2 a3 i.e. (2 3 6) in the array C = [5, 2, 3, 6, 1] is not a zigzag array. When the third element, 6, is removed, the array becomes [5, 2, 3, 1], a collection of a zigzag array. The following are examples of zigzag arrays:

65723
846351109
3748261

Zigzag Array in Java

Because the items (in red) do not follow the order, the following arrays aren’t zigzag at all.

2311121315171819
957821
234578962

Simple Array in Java

Convert Simple array into Zigzag Array:

Here's how to print an array in a Zigzag pattern. Assume you've been handed an array of integers and asked to sort them in a zig-zag manner. The first integer is fewer than the second integer, which is larger than the third integer, which is fewer than the fourth integer, and so on in a zig-zag pattern. As a result, the transformed array should look like this: e1 >e2 > e3 >e4 > e5 >e6.

Test cases:

Input 1:

7

4 3 7 8 6 2 1

Output 1:

3 7 4 8 2 6 1

Input 2:

4

1 4 3 2

Output 2:

1 4 2 3

Example:

import java.until.Arrays ;


Public class ZigZagArray
{
  Public static void main(String[] args)
    {
       int a[] = new int[5];
       int i, j , k;


Scanner in = new Scanner ( System.in ) ;


System.out.println( “ Enter 5 elements in array “ ) ;


       for(i = 0 ; i< 5 ; i++)
            {
 a[i] = in.nextInt() ;
             }


int[][] b = new int[5][] ;


       for ( i = 0 ; i< 5 ; i++ )
         {
                b[i] = new int[a[i]];
                for ( j = 0 ; j <a[i] ; j++ )
          {
                     b[i][j] = k;
                     k++ ;
                 }
          }


}
 }


System.out.print( “ You Create Array “ ) ;


for ( i = 0 ; i< 5 ; i++ )
 {
    for ( j = 0 ; j < b[j].length ; j++ )
      {
System.out.print( b[][]+”\t” ) ;
       }
System.out.println( ) ; 
}

Output:

Enter 5 elements in an array
1
5
2
9
4
You Create Array 1
1       2       3        4        5
1 2
1       2       3         4        5         6        7        8        9
1       2       3         4

Related Topics

Class memory in Java

Anything specifically defined in the Java code is stored either inside the heap or the stack, which is particularly significant. Stack and heap are the two kinds of memory available...

6 minutes read.

Java Strings

String class is the most used class in Java programming language. The string is the sequence of characters, which is treated as objects in Java. Creating String objects We create String objects...

5 minutes read.

POJO in Java

Plain old Java Object, in short, is called POJO in Java. POJO is an everyday object that is not subject to any specific limitations. We can use POJO in any Java...

3 minutes read.

Java Strictfp Keyword

Strictfp is used to impose limits on floating-point calculation. It ensures that we will get the same result on every platform while performing an operation with the floating-point variable. The floating-point calculation is platform-dependent due...

1 minute read.

List all files in a Directory in Java

The list of all files in the directory can be done using Java. You should be aware that a directory may include a subfolder and that subdirectory may also contain some...

3 minutes read.

Java InetAddress class

InetAddress class The InetAddress class refers to the IP address, both IPv4 and IPv6.An instance of an InetAddress consists of an IP address and possibly its corresponding hostname. It provides a method to get the...

9 minutes read.

Map of Map in Java

The map is now a Java interface for mapping keys to values. It is frequently necessary to use Map of Map (nested Map). Nested Maps are useful in various situations, including...

3 minutes read.

Sum of digits in string in java

To find the sum of all digits in a string, you need to traverse through the string one by one character; if the character is an integer, you need to...

2 minutes read.

Design of JDBC

Java applications may interface using database systems from many vendors using the Java Database Connectivity (JDBC) Application Software Interface (API) from Sun Microsystem. To connect spreadsheets, JDBC and database drivers...

3 minutes read.

Java Transient Keyword

An object in Java can be turned into a stream of bytes using serialization. The data of the instance and the kind of data saved in that instance are both...

3 minutes read.

Segment Tree in Java

Binary trees can address a variety of issues; however, the Segment Tree is more efficient in terms of time complexity. The segment tree in Java is represented using an array. Native...

4 minutes read.

Zygodromes in Java

Zygodrome is a positive number created by the same digits running non-trivially. A number is called a zygodrome if identical digits constantly occur together (in pairs). The Greek word "zyg"...

4 minutes read.

New Features of Java 14

 Features like Switch expressions and text blocks which are previewed in Java 13 version are standardized in Java 14. Features in Java 14 Switch ExpressionText BlocksRecordsNull Pointer ExceptionsInstance ofPackaging ToolGarbage collectors 1.Switch Expressions Switch...

3 minutes read.

Java Enum

Enumerations are used in programming languages to represent collections of named constants. For instance, the four suits in a deck of playing cards might represent four iterators named Club, Diamond,...

3 minutes read.

Sliding Window Problem in Java

A sliding window is used in computer science and data science to process large datasets. It involves breaking the dataset into smaller chunks or windows and then processing it in...

6 minutes read.

How to Install Java on MAC

There are many possible ways to install java on mac. This article is based on the installation of java on mac. The operating system platform is Mac OS X, macOS and...

3 minutes read.

Prime Number Program in Java

Prime Number Program in Java using for loop A natural number which is greater than 1 and has only two factors the number itself and 1 is called prime number. In...

2 minutes read.

Java 8 Consumer Interface in Java

The Consumer Interface is used to implement the functional programming in Java. The Consumer Interface indicates a function that accepts a single input and outputs a result. These functions don’t...

2 minutes read.

Java Queue Interface

Queue interface is a subtype of Collection interface. All methods in the Collection interface are also available in the Queue interface. It provides operations of Collection and also some additional...

2 minutes read.

How to Convert int to char in Java

To convert a higher data type to lower data type, we need to do typecasting. Casting is also required when we want to convert ASCII value into character. It is...

3 minutes read.