Press "Enter" to skip to content

PHP 冒泡排序

$arr = [6, 5, 4, 1, 2, 3];
echo '原始数组元素:' . implode(',', $arr) . "<br />";
$sortedArr = bubble_sort($arr);
echo '排序后的数组元素:' . implode(',', $sortedArr);
function bubble_sort($array) {
	for ( $i = count($array) - 1; $i >= 1; $i-- ) {
		$flag = FALSE;
		// flag 用来记录以下循环中是否发生了交换,没有则代表排序完成
		for ( $j = 0; $j <= $i - 1; $j++ ) {
			if ( $array[$j] > $array[$j + 1] ) {
				// 若左边的元素大于右边的元素,则交换, flag 设置为1
				$temp = $array[$j];
				$array[$j] = $array[$j + 1];
				$array[$j + 1] = $temp;
				$flag = TRUE;
			}
		}
		if (FALSE == $flag) {
			// 如果没有交换,则排序完成,退出循环
			break;
		}
	}
	return $array;
}

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注