Blog

It's a Wonderful Life

选择排序算法

2017-03-02 21:19 Posted in Learn with PHP , algorithm

作为另一种时间复杂度为O(n^2)的算法,选择排序显然效率是很低的,但是它的思路却最符合人类思维。即:找出一串无序数组中最小的数,把它放在第一位,然后找出第二小的数,把它放在第二位。。以此类推。

下面给出代码实现:

<?php
function select_sort($arr)
{
	$n = count($arr) - 1;
	
	for ($i = 0; $i <= $n; $i++)
	{
		$k = $i;
		for ($j = $i + 1; $j <= $n; $j++)
		{
			if ($arr[$k] > $arr[$j])
			{
				$k = $j;
			}
		}
		if ($k != $i)
		{
			$temp = $arr[$k];
			$arr[$k] = $arr[$i];
			$arr[$i] = $temp;
		}
	}
	
	return $arr;
}