Search element in row and column sorted matrix

Here given code implementation process.

// C Program 
// Search element in row and column sorted matrix
#include <stdio.h>

// Matrix size
#define R 6
#define C 8
// Find given element in sorted row and column matrix
void searchElement(int matrix[R][C], int element)
{
	// Start with top right corner
	int i = 0;
	int j = C - 1;
	// This is Used to detect resultant element location
	int a = -1;
	int b = -1;
	// Find element from top right corner
	while ((a == -1 && b == -1) && i < R && j >= 0)
	{
		if (matrix[i][j] == element)
		{
			// When we get result
			a = i;
			b = j;
		}
		else if (matrix[i][j] > element)
		{
			// reduce the column position
			j--;
		}
		else
		{
			// increase the row
			i++;
		}
	}
	if (a != -1 && b != -1)
	{
		printf(" %d element exist at location (%d,%d) \n", element, a, b);
	}
	else
	{
		printf(" %d element not exists\n", element);
	}
}
int main(int argc, char
	const *argv[])
{
	// Matrix which is sorted row and column wise
	int matrix[R][C] =	
	{ 
        { 8,  9,  12, 17, 30, 37, 50, 90 }, 
        { 10, 16, 21, 33, 40, 44, 65, 93 }, 
        { 15, 18, 32, 36, 43, 59, 70, 97 }, 
        { 19, 29, 38, 49, 52, 62, 75, 99 }, 
        { 28, 39, 42, 51, 61, 69, 78, 117 }, 
        { 31, 55, 80, 85, 96, 108, 120, 170 }, 
    }; 
	// Test case
	searchElement(matrix, 51);
	searchElement(matrix, 36);
	searchElement(matrix, 117);
	searchElement(matrix, 16);
	return 0;
}

Output

 51 element exist at location (4,3)
 36 element exist at location (2,3)
 117 element exist at location (4,7)
 16 element exist at location (1,1)
/*
  Java Program for
  Search element in row and column sorted matrix
*/
class Searching
{
	// Find given element in sorted row and column matrix
	public void searchElement(int[][] matrix, int element)
	{
		// Get the size
		int rows = matrix.length;
		int cols = matrix[0].length;
		// Start with top right corner
		int i = 0;
		int j = cols - 1;
		// This is Used to detect resultant element location
		int a = -1;
		int b = -1;
		// Find element from top right corner
		while ((a == -1 && b == -1) && i < rows && j >= 0)
		{
			if (matrix[i][j] == element)
			{
				// When we get result
				a = i;
				b = j;
			}
			else if (matrix[i][j] > element)
			{
				// reduce the column position
				j--;
			}
			else
			{
				// increase the row
				i++;
			}
		}
		if (a != -1 && b != -1)
		{
			// When result exists
			System.out.print(" " + element + " element exist at location (" + a + "," + b + ") \n");
		}
		else
		{
			System.out.print(" " + element + " element not exists\n");
		}
	}
	public static void main(String[] args)
	{
		Searching task = new Searching();
		// Matrix which is sorted row and column wise
		int[][] matrix =
        { 
            { 8,  9,  12, 17, 30, 37, 50, 90 }, 
            { 10, 16, 21, 33, 40, 44, 65, 93 }, 
            { 15, 18, 32, 36, 43, 59, 70, 97 }, 
            { 19, 29, 38, 49, 52, 62, 75, 99 }, 
            { 28, 39, 42, 51, 61, 69, 78, 117 }, 
            { 31, 55, 80, 85, 96, 108, 120, 170 }
        }; 
		// Test case
		task.searchElement(matrix, 51);
		task.searchElement(matrix, 36);
		task.searchElement(matrix, 117);
		task.searchElement(matrix, 16);
	}
}

Output

 51 element exist at location (4,3)
 36 element exist at location (2,3)
 117 element exist at location (4,7)
 16 element exist at location (1,1)
// Include header file
#include <iostream>
// Matrix size
#define R 6
#define C 8
using namespace std;
/*
  C++ Program for
  Search element in row and column sorted matrix
*/
class Searching
{
    public:
        // Find given element in sorted row and column matrix
        void searchElement(int matrix[R][C], int element)
        {
              // Start with top right corner
            int i = 0;
            int j = C - 1;
            // This is Used to detect resultant element location
            int a = -1;
            int b = -1;
            // Find element from top right corner
            while ((a == -1 && b == -1) && i < R && j >= 0)
            {
                if (matrix[i][j] == element)
                {
                    // When we get result
                    a = i;
                    b = j;
                }
                else if (matrix[i][j] > element)
                {
                    // reduce the column position
                    j--;
                }
                else
                {
                    // increase the row
                    i++;
                }
            }
            if (a != -1 && b != -1)
            {
                // When result exists
                cout << " " << element << " element exist at location (" << a << "," << b << ") \n";
            }
            else
            {
                cout << " " << element << " element not exists\n";
            }
        }
};
int main()
{
    Searching task = Searching();
    // Matrix which is sorted row and column wise
    int matrix[R][C] = 
    { 
        { 8,  9,  12, 17, 30, 37, 50, 90 }, 
        { 10, 16, 21, 33, 40, 44, 65, 93 }, 
        { 15, 18, 32, 36, 43, 59, 70, 97 }, 
        { 19, 29, 38, 49, 52, 62, 75, 99 }, 
        { 28, 39, 42, 51, 61, 69, 78, 117 }, 
        { 31, 55, 80, 85, 96, 108, 120, 170 }
    }; 
    // Test case
    task.searchElement(matrix, 51);
    task.searchElement(matrix, 36);
    task.searchElement(matrix, 117);
    task.searchElement(matrix, 16);
    return 0;
}

Output

 51 element exist at location (4,3)
 36 element exist at location (2,3)
 117 element exist at location (4,7)
 16 element exist at location (1,1)
// Include namespace system
using System;
/*
  C# Program for
  Search element in row and column sorted matrix
*/
public class Searching
{
	// Find given element in sorted row and column matrix
	public void searchElement(int[,] matrix, int element)
	{
		// Get the size
		int rows = matrix.GetLength(0);
		int cols = matrix.GetLength(1);
		// Start with top right corner
		int i = 0;
		int j = cols - 1;
		// This is Used to detect resultant element location
		int a = -1;
		int b = -1;
		// Find element from top right corner
		while ((a == -1 && b == -1) && i < rows && j >= 0)
		{
			if (matrix[i,j] == element)
			{
				// When we get result
				a = i;
				b = j;
			}
			else if (matrix[i,j] > element)
			{
				// reduce the column position
				j--;
			}
			else
			{
				// increase the row
				i++;
			}
		}
		if (a != -1 && b != -1)
		{
			// When result exists
			Console.Write(" " + element + " element exist at location (" + a + "," + b + ") \n");
		}
		else
		{
			Console.Write(" " + element + " element not exists\n");
		}
	}
	public static void Main(String[] args)
	{
		Searching task = new Searching();
		// Matrix which is sorted row and column wise
		int[,] matrix = {
			{
				8 , 9 , 12 , 17 , 30 , 37 , 50 , 90
			} , {
				10 , 16 , 21 , 33 , 40 , 44 , 65 , 93
			} , {
				15 , 18 , 32 , 36 , 43 , 59 , 70 , 97
			} , {
				19 , 29 , 38 , 49 , 52 , 62 , 75 , 99
			} , {
				28 , 39 , 42 , 51 , 61 , 69 , 78 , 117
			} , {
				31 , 55 , 80 , 85 , 96 , 108 , 120 , 170
			}
		};
		// Test case
		task.searchElement(matrix, 51);
		task.searchElement(matrix, 36);
		task.searchElement(matrix, 117);
		task.searchElement(matrix, 16);
	}
}

Output

 51 element exist at location (4,3)
 36 element exist at location (2,3)
 117 element exist at location (4,7)
 16 element exist at location (1,1)
<?php
/*
  Php Program for
  Search element in row and column sorted matrix
*/
class Searching
{
    // Find given element in sorted row and column matrix
    public  function searchElement( & $matrix, $element)
    {
        // Get the size
        $rows = count($matrix);
        $cols = count($matrix[0]);
        // Start with top right corner
        $i = 0;
        $j = $cols - 1;
        // This is Used to detect resultant element location
        $a = -1;
        $b = -1;
        // Find element from top right corner
        while (($a == -1 && $b == -1) && $i < $rows && $j >= 0)
        {
            if ($matrix[$i][$j] == $element)
            {
                // When we get result
                $a = $i;
                $b = $j;
            }
            else if ($matrix[$i][$j] > $element)
            {
                // reduce the column position
                $j--;
            }
            else
            {
                // increase the row
                $i++;
            }
        }
        if ($a != -1 && $b != -1)
        {
            // When result exists
            echo " ". $element ." element exist at location (". $a .",". $b .") \n";
        }
        else
        {
            echo " ". $element ." element not exists\n";
        }
    }
}

function main()
{
    $task = new Searching();
    // Matrix which is sorted row and column wise
    $matrix = array(
        array(8, 9, 12, 17, 30, 37, 50, 90), 
        array(10, 16, 21, 33, 40, 44, 65, 93),
        array(15, 18, 32, 36, 43, 59, 70, 97), 
        array(19, 29, 38, 49, 52, 62, 75, 99), 
        array(28, 39, 42, 51, 61, 69, 78, 117), 
        array(31, 55, 80, 85, 96, 108, 120, 170)
    );
    // Test case
    $task->searchElement($matrix, 51);
    $task->searchElement($matrix, 36);
    $task->searchElement($matrix, 117);
    $task->searchElement($matrix, 16);
}
main();

Output

 51 element exist at location (4,3)
 36 element exist at location (2,3)
 117 element exist at location (4,7)
 16 element exist at location (1,1)
/*
  Node Js Program for
  Search element in row and column sorted matrix
*/
class Searching
{
	// Find given element in sorted row and column matrix
	searchElement(matrix, element)
	{
		// Get the size
		var rows = matrix.length;
		var cols = matrix[0].length;
		// Start with top right corner
		var i = 0;
		var j = cols - 1;
		// This is Used to detect resultant element location
		var a = -1;
		var b = -1;
		// Find element from top right corner
		while ((a == -1 && b == -1) && i < rows && j >= 0)
		{
			if (matrix[i][j] == element)
			{
				// When we get result
				a = i;
				b = j;
			}
			else if (matrix[i][j] > element)
			{
				// reduce the column position
				j--;
			}
			else
			{
				// increase the row
				i++;
			}
		}
		if (a != -1 && b != -1)
		{
			// When result exists
			process.stdout.write(" " + element + " element exist at location (" + a + "," + b + ") \n");
		}
		else
		{
			process.stdout.write(" " + element + " element not exists\n");
		}
	}
}

function main()
{
	var task = new Searching();
	// Matrix which is sorted row and column wise
	var matrix = [
		[8, 9, 12, 17, 30, 37, 50, 90] , 
        [10, 16, 21, 33, 40, 44, 65, 93] , 
        [15, 18, 32, 36, 43, 59, 70, 97] , 
        [19, 29, 38, 49, 52, 62, 75, 99] , 
        [28, 39, 42, 51, 61, 69, 78, 117] , 
        [31, 55, 80, 85, 96, 108, 120, 170]
	];
	// Test case
	task.searchElement(matrix, 51);
	task.searchElement(matrix, 36);
	task.searchElement(matrix, 117);
	task.searchElement(matrix, 16);
}
main();

Output

 51 element exist at location (4,3)
 36 element exist at location (2,3)
 117 element exist at location (4,7)
 16 element exist at location (1,1)
#   Python 3 Program for
#   Search element in row and column sorted matrix

class Searching :
	#  Find given element in sorted row and column matrix
	def searchElement(self, matrix, element) :
		#  Get the size
		rows = len(matrix)
		cols = len(matrix[0])
		#  Start with top right corner
		i = 0
		j = cols - 1
		#  This is Used to detect resultant element location
		a = -1
		b = -1
		#  Find element from top right corner
		while ((a == -1 and b == -1) and i < rows and j >= 0) :
			if (matrix[i][j] == element) :
				#  When we get result
				a = i
				b = j
			
			elif(matrix[i][j] > element) :
				#  reduce the column position
				j -= 1
			else :
				#  increase the row
				i += 1
			
		
		if (a != -1 and b != -1) :
			#  When result exists
			print(" ", element ," element exist at location (", a ,",", b ,") ")
		else :
			print(" ", element ," element not exists")
		
	

def main() :
	task = Searching()
	#  Matrix which is sorted row and column wise
	matrix = [
		[8, 9, 12, 17, 30, 37, 50, 90] , [10, 16, 21, 33, 40, 44, 65, 93] , [15, 18, 32, 36, 43, 59, 70, 97] , [19, 29, 38, 49, 52, 62, 75, 99] , [28, 39, 42, 51, 61, 69, 78, 117] , [31, 55, 80, 85, 96, 108, 120, 170]
	]
	#  Test case
	task.searchElement(matrix, 51)
	task.searchElement(matrix, 36)
	task.searchElement(matrix, 117)
	task.searchElement(matrix, 16)

if __name__ == "__main__": main()

Output

  51  element exist at location ( 4 , 3 )
  36  element exist at location ( 2 , 3 )
  117  element exist at location ( 4 , 7 )
  16  element exist at location ( 1 , 1 )
#   Ruby Program for
#   Search element in row and column sorted matrix

class Searching 
	#  Find given element in sorted row and column matrix
	def searchElement(matrix, element) 
		#  Get the size
		rows = matrix.length
		cols = matrix[0].length
		#  Start with top right corner
		i = 0
		j = cols - 1
		#  This is Used to detect resultant element location
		a = -1
		b = -1
		#  Find element from top right corner
		while ((a == -1 && b == -1) && i < rows && j >= 0) 
			if (matrix[i][j] == element) 
				#  When we get result
				a = i
				b = j
			elsif(matrix[i][j] > element) 
				#  reduce the column position
				j -= 1
			else 
				#  increase the row
				i += 1
			end

		end

		if (a != -1 && b != -1) 
			#  When result exists
			print(" ", element ," element exist at location (", a ,",", b ,") \n")
		else 
			print(" ", element ," element not exists\n")
		end

	end

end

def main() 
	task = Searching.new()
	#  Matrix which is sorted row and column wise
	matrix = [
		[8, 9, 12, 17, 30, 37, 50, 90] , 
        [10, 16, 21, 33, 40, 44, 65, 93] , 
        [15, 18, 32, 36, 43, 59, 70, 97] , 
        [19, 29, 38, 49, 52, 62, 75, 99] , 
        [28, 39, 42, 51, 61, 69, 78, 117] , 
        [31, 55, 80, 85, 96, 108, 120, 170]
	]
	#  Test case
	task.searchElement(matrix, 51)
	task.searchElement(matrix, 36)
	task.searchElement(matrix, 117)
	task.searchElement(matrix, 16)
end

main()

Output

 51 element exist at location (4,3) 
 36 element exist at location (2,3) 
 117 element exist at location (4,7) 
 16 element exist at location (1,1) 
/*
  Scala Program for
  Search element in row and column sorted matrix
*/
class Searching
{
	// Find given element in sorted row and column matrix
	def searchElement(matrix: Array[Array[Int]], element: Int): Unit = {
		// Get the size
		var rows: Int = matrix.length;
		var cols: Int = matrix(0).length;
		// Start with top right corner
		var i: Int = 0;
		var j: Int = cols - 1;
		// This is Used to detect resultant element location
		var a: Int = -1;
		var b: Int = -1;
		// Find element from top right corner
		while ((a == -1 && b == -1) && i < rows && j >= 0)
		{
			if (matrix(i)(j) == element)
			{
				// When we get result
				a = i;
				b = j;
			}
			else if (matrix(i)(j) > element)
			{
				// reduce the column position
				j -= 1;
			}
			else
			{
				// increase the row
				i += 1;
			}
		}
		if (a != -1 && b != -1)
		{
			// When result exists
			print(" " + element + " element exist at location (" + a + "," + b + ") \n");
		}
		else
		{
			print(" " + element + " element not exists\n");
		}
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var task: Searching = new Searching();
		// Matrix which is sorted row and column wise
		var matrix: Array[Array[Int]] = Array(
          Array(8, 9, 12, 17, 30, 37, 50, 90), 
          Array(10, 16, 21, 33, 40, 44, 65, 93), 
          Array(15, 18, 32, 36, 43, 59, 70, 97), 
          Array(19, 29, 38, 49, 52, 62, 75, 99),
          Array(28, 39, 42, 51, 61, 69, 78, 117), 
          Array(31, 55, 80, 85, 96, 108, 120, 170)
        );
		// Test case
		task.searchElement(matrix, 51);
		task.searchElement(matrix, 36);
		task.searchElement(matrix, 117);
		task.searchElement(matrix, 16);
	}
}

Output

 51 element exist at location (4,3)
 36 element exist at location (2,3)
 117 element exist at location (4,7)
 16 element exist at location (1,1)
/*
  Swift 4 Program for
  Search element in row and column sorted matrix
*/
class Searching
{
	// Find given element in sorted row and column matrix
	func searchElement(_ matrix: [[Int]], _ element: Int)
	{
		// Get the size
		let rows: Int = matrix.count;
		let cols: Int = matrix[0].count;
		// Start with top right corner
		var i: Int = 0;
		var j: Int = cols - 1;
		// This is Used to detect resultant element location
		var a: Int = -1;
		var b: Int = -1;
		// Find element from top right corner
		while ((a == -1 && b == -1) && i < rows && j >= 0)
		{
			if (matrix[i][j] == element)
			{
				// When we get result
				a = i;
				b = j;
			}
			else if (matrix[i][j] > element)
			{
				// reduce the column position
				j -= 1;
			}
			else
			{
				// increase the row
				i += 1;
			}
		}
		if (a  != -1 && b  != -1)
		{
			// When result exists
			print(" ", element ," element exist at location (", a ,",", b ,") ");
		}
		else
		{
			print(" ", element ," element not exists");
		}
	}
}
func main()
{
	let task: Searching = Searching();
	// Matrix which is sorted row and column wise
	let matrix: [[Int]] = [
		[8, 9, 12, 17, 30, 37, 50, 90] , 
        [10, 16, 21, 33, 40, 44, 65, 93] , 
        [15, 18, 32, 36, 43, 59, 70, 97] , 
        [19, 29, 38, 49, 52, 62, 75, 99] , 
        [28, 39, 42, 51, 61, 69, 78, 117] , 
        [31, 55, 80, 85, 96, 108, 120, 170]
	];
	// Test case
	task.searchElement(matrix, 51);
	task.searchElement(matrix, 36);
	task.searchElement(matrix, 117);
	task.searchElement(matrix, 16);
}
main();

Output

  51  element exist at location ( 4 , 3 )
  36  element exist at location ( 2 , 3 )
  117  element exist at location ( 4 , 7 )
  16  element exist at location ( 1 , 1 )
/*
  Kotlin Program for
  Search element in row and column sorted matrix
*/
class Searching
{
	// Find given element in sorted row and column matrix
	fun searchElement(matrix: Array <Array <Int>> , element: Int): Unit
	{
		// Get the size
		var rows: Int = matrix.count();
		var cols: Int = matrix[0].count();
		// Start with top right corner
		var i: Int = 0;
		var j: Int = cols - 1;
		// This is Used to detect resultant element location
		var a: Int = -1;
		var b: Int = -1;
		// Find element from top right corner
		while ((a == -1 && b == -1) && i < rows && j >= 0)
		{
			if (matrix[i][j] == element)
			{
				// When we get result
				a = i;
				b = j;
			}
			else if (matrix[i][j] > element)
			{
				// reduce the column position
				j -= 1;
			}
			else
			{
				// increase the row
				i += 1;
			}
		}
		if (a != -1 && b != -1)
		{
			// When result exists
			print(" " + element + " element exist at location (" + a + "," + b + ") \n");
		}
		else
		{
			print(" " + element + " element not exists\n");
		}
	}
}
fun main(args: Array < String > ): Unit
{
	var task: Searching = Searching();
	// Matrix which is sorted row and column wise
	var matrix: Array <Array<Int>> = arrayOf(
      arrayOf(8, 9, 12, 17, 30, 37, 50, 90), 
      arrayOf(10, 16, 21, 33, 40, 44, 65, 93), 
      arrayOf(15, 18, 32, 36, 43, 59, 70, 97), 
      arrayOf(19, 29, 38, 49, 52, 62, 75, 99), 
      arrayOf(28, 39, 42, 51, 61, 69, 78, 117), 
      arrayOf(31, 55, 80, 85, 96, 108, 120, 170)
    );
	// Test case
	task.searchElement(matrix, 51);
	task.searchElement(matrix, 36);
	task.searchElement(matrix, 117);
	task.searchElement(matrix, 16);
}

Output

 51 element exist at location (4,3)
 36 element exist at location (2,3)
 117 element exist at location (4,7)
 16 element exist at location (1,1)


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







© 2021, kalkicode.com, All rights reserved