ホームページ  >  記事  >  バックエンド開発  >  PHP は一般的な並べ替えアルゴリズムを実装します

PHP は一般的な並べ替えアルゴリズムを実装します

WBOY
WBOYオリジナル
2016-08-08 09:32:171032ブラウズ

挿入ソート: すべてのレコードが挿入されるまで、ソート対象のレコードがキー サイズに従って以前にソートされたサブファイル内の適切な位置に挿入されるたびに。

//插入排序(一维数组)
function insert_sort($arr)
{
	$count = count($arr);
	for($i=1; $i<$count; $i++)
	{
		$tmp = $arr[$i];
		$j = $i - 1;
		while($arr[$j] > $tmp)
		{
			$arr[$i] = $arr[$j];
			$arr[$j] = $tmp;
			$j--;
		}
	}
	return $arr;
}

選択ソート: 毎回、ソート対象のレコードから最小のキーワードを持つレコードが選択され、すべてのレコードがソートされるまで、順序はソートされたサブファイルの最後に配置されます。

//选择排序(一维数组)
function selection_sort($arr)
{
	$count = count($arr);
	for($i=0; $i<$count; $i++)
	{
		$k = $i;
		for($j=$i+1; $j<$count; $j++)
		{
			if($arr[$k] > $arr[$j])
			{
				$k = $j;
			}

			if($k != $i)
			{
				$tmp = $arr[$i];
				$arr[$i] = $arr[$k];
				$arr[$k] = $tmp;
			}
		}
	}
	return $arr;
}

バブルソート: ペアごとにソートするレコードのキーワードを比較し、2 つのレコードの順序が逆であることが判明した場合、逆のレコード位置がなくなるまでそれらを入れ替えます。

//冒泡排序(一维数组)
//实际效果是:每次循环将数组中最小的值放置到数组的最前段,然后,下一次循环不再循环已放置正确数组值的键,以此类推
 function selection_sort($arr)
{
	$count = count($arr);
	if($count <= 0)
		return false;
	for($i=0; $i<$count; $i++)
	{
		for($j=$count-1; $j>$i; $j--)
		{
			if($arr[$j] < $array[$j-1])
			{
				$tmp = $arr[$j];
				$arr[$j] = $arr[$j-1];
				$arr[$j-1] = $tmp;
			}
		}
	}
	return $arr;
}

クイックソート: 基本的にバブルソートと同じで、交換ソートの応用です。

りー

上記は、PHP の一般的なソート アルゴリズムの実装を、内容の側面も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。