首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >奇偶排序

奇偶排序

作者头像
苦咖啡
发布2018-04-28 14:08:36
发布2018-04-28 14:08:36
1.5K0
举报
文章被收录于专栏:我的博客我的博客

原理

奇偶排序法的思路是在数组中重复两趟扫描。第一趟扫描选择所有的数据项对,a[j]和a[j+1],j是奇数(j=1, 3, 5……)。如果它们的关键字的值次序颠倒,就交换它们。第二趟扫描对所有的偶数数据项进行同样的操作(j=2, 4,6……)。重复进行这样两趟的排序直到数组全部有序。

示例

代码语言:javascript
复制
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);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年5月25日,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档