Skip to main content

Generating all subarrays of an array

Here given code implementation process.

// C Program
// Generating all subarrays of an array
#include <stdio.h>

// Print resultant subarray
void printSubarray(int arr[], int start, int last)
{
    for (int i = start; i < last; ++i)
    {
        printf("  %d", arr[i]);
    }
    printf("\n");
}
void findSubArray(int arr[], int n)
{
    // Execute this loop through by array length
    for (int i = 0; i < n; ++i)
    {
        // Inner loop from i+1 to n
        for (int j = i + 1; j <= n; ++j)
        {
            // Print subarray in range [i..j]
            printSubarray(arr, i, j);
        }
    }
}
int main(int argc, char const *argv[])
{
    int arr1[] = {
        1 , 2 , 3 , 6
    };
    int arr2[] = {
        7 , 8 , 1 , 6 , 4
    };
    // Test Case A
    int n = sizeof(arr1) / sizeof(arr1[0]);
    findSubArray(arr1, n);
    printf("\n");
    // Test Case B
    n = sizeof(arr2) / sizeof(arr2[0]);
    findSubArray(arr2, n);
    return 0;
}

input

  1
  1  2
  1  2  3
  1  2  3  6
  2
  2  3
  2  3  6
  3
  3  6
  6

  7
  7  8
  7  8  1
  7  8  1  6
  7  8  1  6  4
  8
  8  1
  8  1  6
  8  1  6  4
  1
  1  6
  1  6  4
  6
  6  4
  4
// Java program for
// Generating all subarrays of an array
import java.util.ArrayList;
public class Subarrays
{
	// Print resultant subarray
	public void printSubarray(int[] arr, int start, int last)
	{
		for (int i = start; i < last; ++i)
		{
			System.out.print(" " + arr[i]);
		}
		System.out.print("\n");
	}
	public void findSubArray(int[] arr, int n)
	{
		// Execute this loop through by array length
		for (int i = 0; i < n; ++i)
		{
			// Inner loop from i+1 to n
			for (int j = i + 1; j <= n; ++j)
			{
				// Print subarray in range [i..j]
				printSubarray(arr, i, j);
			}
		}
	}
	public static void main(String[] args)
	{
		Subarrays task = new Subarrays();
		int[] arr1 = {
			1 , 2 , 3 , 6
		};
		int[] arr2 = {
			7 , 8 , 1 , 6 , 4
		};
		// Test Case A
		int n = arr1.length;
		task.findSubArray(arr1, n);
		System.out.print("\n");
		// Test Case B
		n = arr2.length;
		task.findSubArray(arr2, n);
	}
}

input

 1
 1 2
 1 2 3
 1 2 3 6
 2
 2 3
 2 3 6
 3
 3 6
 6

 7
 7 8
 7 8 1
 7 8 1 6
 7 8 1 6 4
 8
 8 1
 8 1 6
 8 1 6 4
 1
 1 6
 1 6 4
 6
 6 4
 4
// Include header file
#include <iostream>
using namespace std;

class Subarrays
{
	public:
		// Print resultant subarray
		void printSubarray(int arr[], int start, int last)
		{
			for (int i = start; i < last; ++i)
			{
				cout << " " << arr[i];
			}
			cout << "\n";
		}
	void findSubArray(int arr[], int n)
	{
		// Execute this loop through by array length
		for (int i = 0; i < n; ++i)
		{
			// Inner loop from i+1 to n
			for (int j = i + 1; j <= n; ++j)
			{
				// Print subarray in range [i..j]
				this->printSubarray(arr, i, j);
			}
		}
	}
};
int main()
{
	Subarrays *task = new Subarrays();
	int arr1[] = {
		1 , 2 , 3 , 6
	};
	int arr2[] = {
		7 , 8 , 1 , 6 , 4
	};
	// Test Case A
	int n = sizeof(arr1) / sizeof(arr1[0]);
	task->findSubArray(arr1, n);
	cout << "\n";
	// Test Case B
	n = sizeof(arr2) / sizeof(arr2[0]);
	task->findSubArray(arr2, n);
	return 0;
}

input

 1
 1 2
 1 2 3
 1 2 3 6
 2
 2 3
 2 3 6
 3
 3 6
 6

 7
 7 8
 7 8 1
 7 8 1 6
 7 8 1 6 4
 8
 8 1
 8 1 6
 8 1 6 4
 1
 1 6
 1 6 4
 6
 6 4
 4
// Include namespace system
using System;
public class Subarrays
{
	// Print resultant subarray
	public void printSubarray(int[] arr, int start, int last)
	{
		for (int i = start; i < last; ++i)
		{
			Console.Write(" " + arr[i]);
		}
		Console.Write("\n");
	}
	public void findSubArray(int[] arr, int n)
	{
		// Execute this loop through by array length
		for (int i = 0; i < n; ++i)
		{
			// Inner loop from i+1 to n
			for (int j = i + 1; j <= n; ++j)
			{
				// Print subarray in range [i..j]
				this.printSubarray(arr, i, j);
			}
		}
	}
	public static void Main(String[] args)
	{
		Subarrays task = new Subarrays();
		int[] arr1 = {
			1 , 2 , 3 , 6
		};
		int[] arr2 = {
			7 , 8 , 1 , 6 , 4
		};
		// Test Case A
		int n = arr1.Length;
		task.findSubArray(arr1, n);
		Console.Write("\n");
		// Test Case B
		n = arr2.Length;
		task.findSubArray(arr2, n);
	}
}

input

 1
 1 2
 1 2 3
 1 2 3 6
 2
 2 3
 2 3 6
 3
 3 6
 6

 7
 7 8
 7 8 1
 7 8 1 6
 7 8 1 6 4
 8
 8 1
 8 1 6
 8 1 6 4
 1
 1 6
 1 6 4
 6
 6 4
 4
<?php
class Subarrays
{
	// Print resultant subarray
	public	function printSubarray($arr, $start, $last)
	{
		for ($i = $start; $i < $last; ++$i)
		{
			echo(" ".$arr[$i]);
		}
		echo("\n");
	}
	public	function findSubArray($arr, $n)
	{
		// Execute this loop through by array length
		for ($i = 0; $i < $n; ++$i)
		{
			// Inner loop from i+1 to n
			for ($j = $i + 1; $j <= $n; ++$j)
			{
				// Print subarray in range [i..j]
				$this->printSubarray($arr, $i, $j);
			}
		}
	}
}

function main()
{
	$task = new Subarrays();
	$arr1 = array(1, 2, 3, 6);
	$arr2 = array(7, 8, 1, 6, 4);
	// Test Case A
	$n = count($arr1);
	$task->findSubArray($arr1, $n);
	echo("\n");
	// Test Case B
	$n = count($arr2);
	$task->findSubArray($arr2, $n);
}
main();

input

 1
 1 2
 1 2 3
 1 2 3 6
 2
 2 3
 2 3 6
 3
 3 6
 6

 7
 7 8
 7 8 1
 7 8 1 6
 7 8 1 6 4
 8
 8 1
 8 1 6
 8 1 6 4
 1
 1 6
 1 6 4
 6
 6 4
 4
class Subarrays
{
	// Print resultant subarray
	printSubarray(arr, start, last)
	{
		for (var i = start; i < last; ++i)
		{
			process.stdout.write(" " + arr[i]);
		}
		process.stdout.write("\n");
	}
	findSubArray(arr, n)
	{
		// Execute this loop through by array length
		for (var i = 0; i < n; ++i)
		{
			// Inner loop from i+1 to n
			for (var j = i + 1; j <= n; ++j)
			{
				// Print subarray in range [i..j]
				this.printSubarray(arr, i, j);
			}
		}
	}
}

function main()
{
	var task = new Subarrays();
	var arr1 = [1, 2, 3, 6];
	var arr2 = [7, 8, 1, 6, 4];
	// Test Case A
	var n = arr1.length;
	task.findSubArray(arr1, n);
	process.stdout.write("\n");
	// Test Case B
	n = arr2.length;
	task.findSubArray(arr2, n);
}
main();

input

 1
 1 2
 1 2 3
 1 2 3 6
 2
 2 3
 2 3 6
 3
 3 6
 6

 7
 7 8
 7 8 1
 7 8 1 6
 7 8 1 6 4
 8
 8 1
 8 1 6
 8 1 6 4
 1
 1 6
 1 6 4
 6
 6 4
 4
class Subarrays :
	#  Print resultant subarray
	def printSubarray(self, arr, start, last) :
		i = start
		while (i < last) :
			print(" ", arr[i], end = "")
			i += 1
		
		print(end = "\n")
	
	def findSubArray(self, arr, n) :
		#  Execute this loop through by list length
		i = 0
		while (i < n) :
			#  Inner loop from i+1 to n
			j = i + 1
			while (j <= n) :
				#  Print sublist in range [i..j]
				self.printSubarray(arr, i, j)
				j += 1
			
			i += 1
		
	

def main() :
	task = Subarrays()
	arr1 = [1, 2, 3, 6]
	arr2 = [7, 8, 1, 6, 4]
	#  Test Case A
	n = len(arr1)
	task.findSubArray(arr1, n)
	print(end = "\n")
	#  Test Case B
	n = len(arr2)
	task.findSubArray(arr2, n)

if __name__ == "__main__": main()

input

  1
  1  2
  1  2  3
  1  2  3  6
  2
  2  3
  2  3  6
  3
  3  6
  6

  7
  7  8
  7  8  1
  7  8  1  6
  7  8  1  6  4
  8
  8  1
  8  1  6
  8  1  6  4
  1
  1  6
  1  6  4
  6
  6  4
  4
class Subarrays 
	#  Print resultant subarray
	def printSubarray(arr, start, last) 
		i = start
		while (i < last) 
			print(" ", arr[i])
			i += 1
		end

		print("\n")
	end

	def findSubArray(arr, n) 
		i = 0
		#  Execute this loop through by array length
		while (i < n) 
			
			j = i + 1
			#  Inner loop from i+1 to n
			while (j <= n) 
				#  Print subarray in range [i..j]
				self.printSubarray(arr, i, j)
				j += 1
			end

			i += 1
		end

	end

end

def main() 
	task = Subarrays.new()
	arr1 = [1, 2, 3, 6]
	arr2 = [7, 8, 1, 6, 4]
	#  Test Case A
	n = arr1.length
	task.findSubArray(arr1, n)
	print("\n")
	#  Test Case B
	n = arr2.length
	task.findSubArray(arr2, n)
end

main()

input

 1
 1 2
 1 2 3
 1 2 3 6
 2
 2 3
 2 3 6
 3
 3 6
 6

 7
 7 8
 7 8 1
 7 8 1 6
 7 8 1 6 4
 8
 8 1
 8 1 6
 8 1 6 4
 1
 1 6
 1 6 4
 6
 6 4
 4
class Subarrays()
{
	// Print resultant subarray
	def printSubarray(arr: Array[Int], start: Int, last: Int): Unit = {
		var i: Int = start;
		while (i < last)
		{
			print(" " + arr(i));
			i += 1;
		}
		print("\n");
	}
	def findSubArray(arr: Array[Int], n: Int): Unit = {
		
		var i: Int = 0;
      	// Execute this loop through by array length
		while (i < n)
		{
			
			var j: Int = i + 1;
          	// Inner loop from i+1 to n
			while (j <= n)
			{
				// Print subarray in range [i..j]
				printSubarray(arr, i, j);
				j += 1;
			}
			i += 1;
		}
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var task: Subarrays = new Subarrays();
		var arr1: Array[Int] = Array(1, 2, 3, 6);
		var arr2: Array[Int] = Array(7, 8, 1, 6, 4);
		// Test Case A
		var n: Int = arr1.length;
		task.findSubArray(arr1, n);
		print("\n");
		// Test Case B
		n = arr2.length;
		task.findSubArray(arr2, n);
	}
}

input

 1
 1 2
 1 2 3
 1 2 3 6
 2
 2 3
 2 3 6
 3
 3 6
 6

 7
 7 8
 7 8 1
 7 8 1 6
 7 8 1 6 4
 8
 8 1
 8 1 6
 8 1 6 4
 1
 1 6
 1 6 4
 6
 6 4
 4
import Foundation;
class Subarrays
{
	// Print resultant subarray
	func printSubarray(_ arr: [Int], _ start: Int, _ last: Int)
	{
		var i = start;
		while (i < last)
		{
			print(" ", arr[i], terminator: "");
			i += 1;
		}
		print(terminator: "\n");
	}
	func findSubArray(_ arr: [Int], _ n: Int)
	{
		// Execute this loop through by array length
		var i = 0;
		while (i < n)
		{
			// Inner loop from i+1 to n
			var j = i + 1;
			while (j <= n)
			{
				// Print subarray in range [i..j]
				self.printSubarray(arr, i, j);
				j += 1;
			}
			i += 1;
		}
	}
}
func main()
{
	let task = Subarrays();
	let arr1 = [1, 2, 3, 6];
	let arr2 = [7, 8, 1, 6, 4];
	// Test Case A
	var n = arr1.count;
	task.findSubArray(arr1, n);
	print(terminator: "\n");
	// Test Case B
	n = arr2.count;
	task.findSubArray(arr2, n);
}
main();

input

  1
  1  2
  1  2  3
  1  2  3  6
  2
  2  3
  2  3  6
  3
  3  6
  6

  7
  7  8
  7  8  1
  7  8  1  6
  7  8  1  6  4
  8
  8  1
  8  1  6
  8  1  6  4
  1
  1  6
  1  6  4
  6
  6  4
  4
class Subarrays
{
	// Print resultant subarray
	fun printSubarray(arr: Array < Int > , start: Int, last: Int): Unit
	{
		var i: Int = start;
		while (i < last)
		{
			print(" " + arr[i]);
			i += 1;
		}
		print("\n");
	}
	fun findSubArray(arr: Array < Int > , n: Int): Unit
	{
		
		var i: Int = 0;
      	// Execute this loop through by array length
		while (i < n)
		{
			
			var j: Int = i + 1;
          	// Inner loop from i+1 to n
			while (j <= n)
			{
				// Print subarray in range [i..j]
				this.printSubarray(arr, i, j);
				j += 1;
			}
			i += 1;
		}
	}
}
fun main(args: Array < String > ): Unit
{
	val task: Subarrays = Subarrays();
	val arr1: Array < Int > = arrayOf(1, 2, 3, 6);
	val arr2: Array < Int > = arrayOf(7, 8, 1, 6, 4);
	// Test Case A
	var n: Int = arr1.count();
	task.findSubArray(arr1, n);
	print("\n");
	// Test Case B
	n = arr2.count();
	task.findSubArray(arr2, n);
}

input

 1
 1 2
 1 2 3
 1 2 3 6
 2
 2 3
 2 3 6
 3
 3 6
 6

 7
 7 8
 7 8 1
 7 8 1 6
 7 8 1 6 4
 8
 8 1
 8 1 6
 8 1 6 4
 1
 1 6
 1 6 4
 6
 6 4
 4




Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment