bogo排序的PHP实现 bogo sort

2011-01-14 阅读 47

在计算机科学中,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 无厘头

更新于 2023年03月28日