Skip to main content

Selection sort in php

Php program for Selection sort. Here more solutions.

<?php
/*
  Php program for selection sort
*/
class MySort
{
	// Swap the array element
	public	function swap(&$arr, $x, $y)
	{
		// x and y are index of array
		$temp = $arr[$x];
		$arr[$x] = $arr[$y];
		$arr[$y] = $temp;
	}
	public	function selectionSort(&$arr, $n)
	{
		$min = 0;
		// Execute loop from 0..n
		for ($i = 0; $i < $n; ++$i)
		{
			// Get current index
			$min = $i;
			for ($j = $i + 1; $j < $n; ++$j)
			{
				if ($arr[$min] > $arr[$j])
				{
					// Get the minimum element index
					$min = $j;
				}
			}
			if ($i != $min)
			{
				// Swap minimum element at i index
				$this->swap($arr, $i, $min);
			}
		}
	}
	// Display array elements
	public	function display($arr, $n)
	{
		for ($i = 0; $i < $n; ++$i)
		{
			// Display element value
			echo "  $arr[$i]";
		}
		echo "\n";
	}
	public static function main()
	{
		$task = new MySort();
		// Array of integer elements
		$arr = array(8, 2, 3, 8, 1, 3, 73, 121, 
                     54, 23, 84, 13, 67, 23, 52);
		// Get the size of array
		$n = count($arr);
		echo " Before Sort :\n";
		$task->display($arr, $n);
		// Test
		$task->selectionSort($arr, $n);
		echo " After Sort :\n";
		$task->display($arr, $n);
	}
}
MySort::main();

Output

 Before Sort :
  8  2  3  8  1  3  73  121  54  23  84  13  67  23  52
 After Sort :
  1  2  3  3  8  8  13  23  23  52  54  67  73  84  121




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