$arr = array(1,7,3,10,5,6,2,8,9,4);
$arr_len = count($arr);
for ($i = 1; $i < $arr_len; $i++)//大循环数组长度-1次
{
if ($i%2 == 1)//根据次数判断取最大还是最小
{
for ($start_index = $i - 1,$max_index = $start_index,$j = 1; $j <= $arr_len - $i; $j++)//小循环次数
{
$current_index = $start_index + $j;
if ($arr[$max_index] < $arr[$current_index])
{
$max_index = $current_index;
}
}
if ($max_index != $start_index)
{
$max_value = $arr[$max_index];
$arr[$max_index] = $arr[$start_index];
$arr[$start_index] = $max_value;
}
}
else
{
for ($start_index = $i - 1,$max_index = $start_index,$j = 1; $j <= $arr_len - $i; $j++)//小循环次数
{
$current_index = $start_index + $j;
if ($arr[$max_index] > $arr[$current_index])
{
$max_index = $current_index;
}
}
if ($max_index != $start_index)
{
$max_value = $arr[$max_index];
$arr[$max_index] = $arr[$start_index];
$arr[$start_index] = $max_value;
}
}
}
print_r($arr);
对一组数字排序,最大的放第一位,最小的放第二位,第二大的放第三位,第二小的放第四位,依次类推
最新推荐文章于 2024-08-08 19:28:04 发布
这篇博客介绍了一个有趣的排序问题,目标是将数组按照特定规则重新排列:奇数位置放置当前最大值,偶数位置放置当前最小值。示例代码使用PHP实现,通过双重循环完成交替排序。最后输出排序后的数组。
1442

被折叠的 条评论
为什么被折叠?



