• 技术文章 >php教程 >php手册

    [常用算法PHP实现]之奇偶排序

    2016-06-06 20:08:15原创754

    关于奇偶排序的概念线面摘抄一下维基百科的介绍: 奇偶排序 ,或 奇偶换位排序 ,或 砖排序 [1] ,是一种相对简单的排序算法,最初发明用于有本地互连的并行计算。这是与冒泡排序特点类似的一种比较排序。 该算法中,通过比较数组中相邻的(奇-偶)位置数字

    关于奇偶排序的概念线面摘抄一下维基百科的介绍:

    奇偶排序,或奇偶换位排序,或砖排序[1],是一种相对简单的排序算法,最初发明用于有本地互连的并行计算。这是与冒泡排序特点类似的一种比较排序。

    该算法中,通过比较数组中相邻的(奇-偶)位置数字对,如果该奇偶对是错误的顺序(第一个大于第二个),则交换。下一步重复该操作,但针对所有的(偶-奇)位置数字对。如此交替进行下去。

    以下是php版本的实现:

    function addEvenSort($arr,$sort='asc'){
        $sorted = false;
        while(!$sorted){
            $sorted = true;
            for($i = 1;$i < count($arr)-1;$i+=2){
                if(($arr[$i]>$arr[$i+1]&&$sort=='asc') || ($arr[$i]<$arr[$i+1] && $sort=='desc')){
                    $temp = $arr[$i+1];
                    $arr[$i+1] = $arr[$i];
                    $arr[$i] = $temp;
                    $sorted = false;
                }
            }
            for($i = 0;$i < count($arr)-1;$i+=2){
                if(($arr[$i]>$arr[$i+1]&&$sort=='asc') || ($arr[$i]<$arr[$i+1] && $sort=='desc')){
                    $temp = $arr[$i+1];
                    $arr[$i+1] = $arr[$i];
                    $arr[$i] = $temp;
                    $sorted = false;
                }
            }
        }
        return $arr;
    }
    

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:wordpress 后台页面模板动态切换 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • php中的网页重定向原创• PHP5中Cookie与 Session使用详解• php写的简易聊天室代码• 从一个不错的留言本弄的mysql数据库操作类• PHP实现采集程序原理和简单示例代码
    1/1

    PHP中文网