鸡尾酒排序的PHP实现 Cocktail Sort

鸡尾酒排序Cocktail Sort的PHP实现 

01 set_time_limit(1);
02 function out_arr($arr) {
03     return implode(', '$arr).'
04 ';
05 }
06  
07 function swap(&$a, &$b) {
08     $tmp $a;
09     $a $b;
10     $b $tmp;
11 }
12  
13 function sort_cocktail($arr) {
14     $change = true;
15     $i = 0;
16     while($change == true) {
17         $change = FALSE;   
18         for($j = 0; $j count($arr) - 1; $j++ ) {
19             if$arr[$j] > $arr[$j+1] ) {
20                 $tmp $arr[$j];
21                 $arr[$j] = $arr[$j + 1];
22                 $arr[$j + 1] = $tmp;
23                 $change = true;
24             }
25         }
26          
27         for($j count($arr) - 1; $j > 0 ; $j-- ) {
28             if$arr[$j] < $arr[$j-1] ) {
29                 $tmp $arr[$j];
30                 $arr[$j] = $arr[$j-1];
31                 $arr[$j-1] = $tmp;
32                 $change = true;
33             }
34         }
35         $i++;
36         echo sprintf('%3d'$i).' : '.out_arr($arr);
37     }  
38 }
39  
40 echo '<pre>';
41 $arr = range(1, 20);
42 shuffle($arr);
43 echo 'ORG : '.out_arr($arr);
44 $arr = sort_cocktail($arr);
45 echo '</pre>';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值