鸡尾酒排序的PHP实现 Cocktail Sort

2011-01-14 阅读 37

鸡尾酒排序Cocktail Sort的PHP实现

<pre class="brush:php;">    set_time_limit(1);
function out_arr($arr) {
	return implode(', ', $arr).'
';
}

function swap(&amp;$a, &amp;$b) {
	$tmp = $a;
	$a = $b;
	$b = $tmp;
}

function sort_cocktail($arr) {
	$change = true;
	$i = 0;
	while($change == true) {
		$change = FALSE;	
		for($j = 0; $j < count($arr) - 1; $j++ ) {
			if( $arr[$j] > $arr[$j+1] ) {
				$tmp = $arr[$j];
				$arr[$j] = $arr[$j + 1];
				$arr[$j + 1] = $tmp;
				$change = true;
			}
		}
		
		for($j = count($arr) - 1; $j > 0 ; $j-- ) {
			if( $arr[$j] < $arr[$j-1] ) {
				$tmp = $arr[$j];
				$arr[$j] = $arr[$j-1];
				$arr[$j-1] = $tmp;
				$change = true;
			}
		}
		$i++;
		echo sprintf('%3d', $i).' : '.out_arr($arr);
	}	
}

echo '<pre>';
$arr = range(1, 20);
shuffle($arr);
echo 'ORG : '.out_arr($arr);
$arr = sort_cocktail($arr);
echo '</pre>';
```

Cocktail Sort 鸡尾酒 排序 算法 实现 php

更新于 2023年03月28日