对一组数字排序,最大的放第一位,最小的放第二位,第二大的放第三位,第二小的放第四位,依次类推
来源:互联网 发布:美工接单平台 编辑:程序博客网 时间:2024/06/05 09:31
$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);