原理
奇偶排序法的思路是在数组中重复两趟扫描。第一趟扫描选择所有的数据项对,a[j]和a[j+1],j是奇数(j=1, 3, 5……)。如果它们的关键字的值次序颠倒,就交换它们。第二趟扫描对所有的偶数数据项进行同样的操作(j=2, 4,6……)。重复进行这样两趟的排序直到数组全部有序。
示例
php
//奇偶排序
$arr = array(1,4,5,89,22,44,5,33,6,7,82,332);
$num = count($arr);
$sort = true;
while ($sort) {
$sort = false;
for($i = 0; $i<$num;$i+=2) {
if($arr[$i] > $arr[$i+1]) {
$temp = $arr[$i];
$arr[$i] = $arr[$i+1];
$arr[$i + 1] = $temp;
$sort = true;
}
}
for($j=1; $j<$num-1;$j+=2) {
if($arr[$j] > $arr[$j + 1]) {
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j + 1] = $temp;
$sort = true;
}
}
if(!$sort) {
break;
}
}
print_r($arr);