龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php 插入排序 支持升序降序

时间:2014-10-01 16:27来源:网络整理 作者:网络 点击:
分享到:
插入排序 支持升序降序 [代码片段(48行)]
<?php
class InsertManages {
    //插入算法
    function insert($rand_arr, $sort = '') {
        //得到数组个数
        $count = count($rand_arr);
        echo '<hr>排序前<hr/><xmp>' . var_export($rand_arr, TRUE) . '</xmp>';
        if ($sort == 'asc' || empty($sort)) {
            for ($i = 1; $i < $count; $i++) {
                if ($rand_arr[$i] < $rand_arr[$i - 1]) {
                    $t = $rand_arr[$i];
                    for ($j = $i; $j > 0 && $rand_arr[$j - 1] > $t; $j--) {
                        $rand_arr[$j] = $rand_arr[$j - 1];
                        $rand_arr[$j - 1] = $t;
                    }
                }
            }
            return $rand_arr;
        } else if ($sort == 'desc') {
            for ($i = $count - 2; $i >= 0; $i--) {
                if ($rand_arr[$i] < $rand_arr[$i + 1]) {
                    $t = $rand_arr[$i];
                    for ($j = $i + 1; $j < $count && $rand_arr[$j] > $t; $j++) {
                        $rand_arr[$j - 1] = $rand_arr[$j];
                        $rand_arr[$j] = $t;
                    }
                }
            }
            return $rand_arr;
        }
    }

    //创建随机数组
    function rands() {
        $s = 100;
        $arr = array();
        for ($i = 0; $i < $s; $i++) {
            $arr[] = rand(0, 1000);
        }
        return $arr;
    }

}

$rand_arr = InsertManages::rands();
echo '<hr>排序后<hr/><xmp>' . var_export(InsertManages::insert($rand_arr, 'desc'), TRUE) . '</xmp>';
?>
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接