猴子排序是一种无序数组排序算法,其思想是随机打乱数组元素的顺序,然后检查数组是否已经有序,如果没有则重复这个过程,直到数组有序为止。 以下是使用PHP实现一维数组的猴子
猴子排序是一种无序数组排序算法,其思想是随机打乱数组元素的顺序,然后检查数组是否已经有序,如果没有则重复这个过程,直到数组有序为止。
以下是使用PHP实现一维数组的猴子排序的代码示例:
<?php
// 定义猴子排序函数
function monkeySort($arr) {
while (!isSorted($arr)) {
shuffle($arr);
}
return $arr;
}
// 检查数组是否有序
function isSorted($arr) {
$length = count($arr);
for ($i = 1; $i < $length; $i++) {
if ($arr[$i] < $arr[$i - 1]) {
return false;
}
}
return true;
}
// 测试猴子排序
$array = [5, 2, 8, 1, 4];
echo "原始数组:" . implode(", ", $array) . "\n";
$sortedArray = monkeySort($array);
echo "排序后数组:" . implode(", ", $sortedArray) . "\n";
?>
以上代码中,monkeySort
函数接受一个一维数组作为参数,通过不断随机打乱数组元素的顺序,并检查是否有序,直到数组有序为止。isSorted
函数用于检查数组是否有序,如果数组中存在相邻两个元素不满足升序关系,则返回false
,否则返回true
。
在示例中,原始数组为[5, 2, 8, 1, 4]
,经过猴子排序后,输出排序后的数组[1, 2, 4, 5, 8]
。