奇偶排序

原理

奇偶排序法的思路是在数组中重复两趟扫描。第一趟扫描选择所有的数据项对,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);

 

Bookmark the permalink.

Comments are closed.