鸡尾酒排序Cocktail Sort的PHP实现
<pre class="brush:php;"> set_time_limit(1);
function out_arr($arr) {
return implode(', ', $arr).'
';
}
function swap(&$a, &$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