<?php
$arr = array(12,1,5,88,35,0,18,100,50,21,28,7,9,9.5);

//交换两值
function swap(&$m, &$n){
	$temp = $m;
	$m = $n;
	$n = $temp;

	/* 如数组中有小数时,以下方法会省略小数点后面的数
	$m = $m ^ $n;
	$n = $m ^ $n;
	$m = $m ^ $n;
	*/
}

//冒泡排序
function bubbleSort($arr){
	if(!is_array($arr)) return $arr;
	$count = count($arr);
	for($i=1; $i<$count; $i++){
		for($j=0; $j<$count-$i;$j++){
			if($arr[$j] > $arr[$j+1]){
				/*
				$temp = $arr[$j];
				$arr[$j] = $arr[$j+1];
				$arr[$j+1] = $temp;
				*/
				/*
				$arr[$j] = $arr[$j] + $arr[$j+1];
				$arr[$j+1] = $arr[$j] - $arr[$j+1];
				$arr[$j] = $arr[$j] - $arr[$j+1];
				*/
				/*
				$arr[$j] = $arr[$j] ^ $arr[$j+1];
				$arr[$j+1] = $arr[$j] ^ $arr[$j+1];
				$arr[$j] = $arr[$j] ^ $arr[$j+1];
				*/
				swap($arr[$j], $arr[$j+1]);
			}
		}
	}
	return $arr;
}

$arr2 = bubbleSort($arr);
echo implode(',', $arr2).'<hr>';

//冒泡排序
function bubbleSort2($arr){
	if(!is_array($arr)) return $arr;
	$count = count($arr);
	for($i=0; $i<$count-1; $i++){
		for($j=$i+1; $j<$count; $j++){
			if($arr[$i] < $arr[$j]){
				/*
				$arr[$i] = $arr[$i] + $arr[$j];
				$arr[$j] = $arr[$i] - $arr[$j];
				$arr[$i] = $arr[$i] - $arr[$j];
				*/
				swap($arr[$i], $arr[$j]);
			}
		}
	}
	return $arr;
}
$arr3 = bubbleSort2($arr);
echo implode(',', $arr3).'<hr>';;

//快速排序
function quickSort($arr){
	if(!is_array($arr)) return $arr;
	$len=count($arr);
	for($i=0; $i<$len; $i++){
		$min = $arr[$i];
		for($j=$i+1; $j<$len; $j++){
			if($arr[$i] > $arr[$j]){
				$temp = $arr[$i];
				$arr[$i] = $arr[$j];
				$arr[$j] = $temp;
			}
		}
		$min = $arr[$j];
	}
	return $arr;
}
$arr4 = quickSort($arr);
echo implode(',', $arr4);
?>

 

相关文章:

  • 2021-11-30
  • 2021-11-20
  • 2021-11-20
  • 2021-11-20
  • 2021-12-15
  • 2021-11-20
  • 2021-09-24
猜你喜欢
  • 2022-12-23
  • 2021-11-20
  • 2021-11-20
相关资源
相似解决方案