PHP implementiert gängige Sortieralgorithmen

WBOY
Freigeben: 2016-08-08 09:32:17
Original
1089 Leute haben es durchsucht

Einfügungssortierung: Jedes Mal, wenn ein zu sortierender Datensatz entsprechend seiner Schlüsselgröße an der entsprechenden Position in der zuvor sortierten Unterdatei eingefügt wird, bis alle Datensätze eingefügt sind.

//插入排序(一维数组)
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;
}
Nach dem Login kopieren

Auswahlsortierung: Jedes Mal wird der Datensatz mit dem kleinsten Schlüsselwort aus den zu sortierenden Datensätzen ausgewählt und die Reihenfolge wird am Ende der sortierten Unterdatei platziert, bis alle Datensätze vorhanden sind sind sortiert.

//选择排序(一维数组)
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;
}
Nach dem Login kopieren

Blasensortierung: Vergleichen Sie die Schlüsselwörter der Datensätze, die paarweise sortiert werden sollen. Wenn festgestellt wird, dass die Reihenfolge der beiden Datensätze umgekehrt ist, wird die Reihenfolge vertauscht, bis keine Umkehr mehr vorliegt Rekordposition.

//冒泡排序(一维数组)
//实际效果是:每次循环将数组中最小的值放置到数组的最前段,然后,下一次循环不再循环已放置正确数组值的键,以此类推
 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;
}
Nach dem Login kopieren

Schnellsortierung: Im Wesentlichen dasselbe wie die Blasensortierung, es handelt sich um eine Anwendung der Austauschsortierung.

//快速排序(一维数组)
function quick_sort($arr)
{
	$count = count($arr);
	if($count <= 1)
		return $arr;
	$key = $arr[0];
	$left_arr = array();
	$right_arr = array();
	for($i=1; $i<$count; $i++)
	{
		if($arr[$i] <= $key)
			$left_arr[] = $arr[$i];
		else
			$right_arr[] = $arr[$i];
	}
	$left_arr = quick_sort($left_arr);
	$right_arr = quick_sort($right_arr);

	return array_merge($left_arr,array($arr), $right_arr);
}
Nach dem Login kopieren

Das Obige stellt die Implementierung gängiger Sortieralgorithmen in PHP vor, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage