在计算机科学中,Bogo排序(bogo-sort)是個既不實用又原始的排序演算法,其原理等同將一堆卡片拋起,落在桌上後檢查卡片是否已整齊排列好,若非就再拋一次。其名字源自Quantum bogodynamics,又稱bozo sort、blort sort或猴子排序(參見無限猴子定理)。
我没在自己的机子上跑成功过,看看那位跑成功了告诉我下。
<pre class="brush:php;"> set_time_limit(1);
function out_arr($arr) {
return implode(', ', $arr).'
';
}
function sort_bogo($arr) {
$ret = $arr;
sort($ret);
while( TRUE ) {
shuffle($arr);
if( $arr == $ret ) {
break;
}
echo sprintf('%3d', $i++).' : '.out_arr($arr);
}
return $arr;
}
echo '<pre>';
$arr = range(1, 20);
shuffle($arr);
echo 'ORG : '.out_arr($arr);
$arr = sort_bogo($arr);
echo 'RET : '.out_arr($arr);
echo '</pre>';
```
bogo 排序 sort 无厘头